flutter getx navigation Error Null check operator used on a null value

q5lcpyga  于 2023-04-07  发布在  Flutter
关注(0)|答案(3)|浏览(193)

我需要当用户点击按钮添加数据到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");
      }
    }
  }
}
7ivaypg9

7ivaypg91#

使用此运算符(!)时会发生此错误。
你必须使用使用三元运算符的例子如下:

void main() {
    Students? student;
    print(student?.name);
   }
esyap4oy

esyap4oy2#

在AddProductController类中实现Getx服务。它看起来像这样:
class AddProductController扩展GetxController实现GetxService{......}

mrphzbgm

mrphzbgm3#

你可以试试这个:- addProduct().then('call Get.toNamed here');其中,在单击按钮时调用了addProduct()方法;

相关问题