Flutter 给出空错误,但在重启后有效
Flutter gives null error, but works after restart
我是 Flutter 的新手,我正在尝试从 firestore 集合中获取数据。我将 FutureBuilder 与 Provider 一起使用,但它在初始时显示 null 错误并在重新启动应用程序后完美运行。
这是获取数据的代码:
FutureBuilder<QuerySnapshot>(
future: FirebaseFirestore.instance
.collection(collec.collectionProducts)
.get(),
builder: (context, snapshot) {
return Consumer<CartItemCounter>(
builder: (BuildContext context, CartItemCounter cart, _) {
if (cart.checkProductAddedToCart(model.productId)) {
return Row(....);
错误
futureb 代码uilder
代码 ui
(这里我更改了集合名称)
我该如何解决。我已经尝试了在线提供的所有解决方案。谢谢
为未来的构建器始终检查结果,即快照有数据。
根据快照的状态设置开关条件或 if-else 块。
查看官方文档中的示例here
哪里出错了?
据此,问题出在您的Consumer<CartItemCounter>
。
错误是什么意思?
这个错误,The method 'x' was called on null.
,意思是写这个x
函数的class,那个class是空的。
我的代码出现这个错误的原因是什么?
您的 Consumer<CartItemCounter>
提供了一个名为 cart
的 CartItemCounter
实例。然后,你调用函数 checkProductAddedToCart
.
错误消息告诉您 cart
是 null,这是由 Consumer
小部件提供给您的。这意味着消费者可能也没有找到那个提供者。我希望 Provider
应该有一个错误日志,告诉您找不到 CartItemCounter。
可能的解决方案
尝试“提供”CartItemCounter。
你是怎么做到的?转到应用程序的小部件树的顶部 MaterialApp
,将其包装在 MultiProvider
或 ChangeNotifierProvider
中,然后将新的 CartItemCounter 作为 value
.
传递
阅读 Official Provider Docs 了解有关如何公开提供程序的更多信息。
您需要上传完整的日志,以便我进一步帮助您。
我是 Flutter 的新手,我正在尝试从 firestore 集合中获取数据。我将 FutureBuilder 与 Provider 一起使用,但它在初始时显示 null 错误并在重新启动应用程序后完美运行。
这是获取数据的代码:
FutureBuilder<QuerySnapshot>(
future: FirebaseFirestore.instance
.collection(collec.collectionProducts)
.get(),
builder: (context, snapshot) {
return Consumer<CartItemCounter>(
builder: (BuildContext context, CartItemCounter cart, _) {
if (cart.checkProductAddedToCart(model.productId)) {
return Row(....);
错误
futureb 代码uilder
代码 ui
我该如何解决。我已经尝试了在线提供的所有解决方案。谢谢
为未来的构建器始终检查结果,即快照有数据。
根据快照的状态设置开关条件或 if-else 块。
查看官方文档中的示例here
哪里出错了?
据此,问题出在您的Consumer<CartItemCounter>
。
错误是什么意思?
这个错误,The method 'x' was called on null.
,意思是写这个x
函数的class,那个class是空的。
我的代码出现这个错误的原因是什么?
您的 Consumer<CartItemCounter>
提供了一个名为 cart
的 CartItemCounter
实例。然后,你调用函数 checkProductAddedToCart
.
错误消息告诉您 cart
是 null,这是由 Consumer
小部件提供给您的。这意味着消费者可能也没有找到那个提供者。我希望 Provider
应该有一个错误日志,告诉您找不到 CartItemCounter。
可能的解决方案
尝试“提供”CartItemCounter。
你是怎么做到的?转到应用程序的小部件树的顶部 MaterialApp
,将其包装在 MultiProvider
或 ChangeNotifierProvider
中,然后将新的 CartItemCounter 作为 value
.
阅读 Official Provider Docs 了解有关如何公开提供程序的更多信息。
您需要上传完整的日志,以便我进一步帮助您。