我需要当用户点击按钮添加数据到firebase,蛇栏弹出一个成功的消息,然后返回。但没有导航发生。
使用navigator时出现的错误是:
对空值使用空检查运算符时出错
验证码为:
class AddProductController extends GetxController {
addProduct() async {
if ((addProductFormKey.currentState?.validate() ?? false) &&
pickedPhoto != null) {
String docID = FirebaseFirestore.instance.collection('products').doc().id;
var url = "";
try {
UploadTask uploadTask = FirebaseStorage.instance
.ref('users/products/$docID/')
.putFile(pickedPhoto!);
uploadTask.whenComplete(() async {
url = await FirebaseStorage.instance
.ref('users/products/$docID/')
.getDownloadURL();
await FirebaseFirestore.instance
.collection("products")
.doc(docID)
.set({
"imgUrl": url,
}, SetOptions(merge: true));
Get.snackbar(
"Sucess",
"Your Product Is Added",
snackPosition: SnackPosition.BOTTOM,
);
}).catchError((onError) {
print(onError);
});
return Get.toNamed(Routes.PRODUCTS); // => doees not work
} catch (e) {
print("\n Error $e \n");
}
}
}
}
3条答案
按热度按时间7ivaypg91#
使用此运算符
(!)
时会发生此错误。你必须使用使用三元运算符的例子如下:
esyap4oy2#
在AddProductController类中实现Getx服务。它看起来像这样:
class AddProductController扩展GetxController实现GetxService{......}
mrphzbgm3#
你可以试试这个:- addProduct().then('call Get.toNamed here');其中,在单击按钮时调用了addProduct()方法;