【发布时间】:2020-09-01 12:14:28
【问题描述】:
标题可能说明了一切。我的场景是我有不同的小部件在等待 firebase 数据构建它们的内容。最后一个小部件应该等待其他小部件完成并根据从 Firebase 检索到的数据进行一些计算。这可能吗?
我已经尝试过 ValueListenableBuilder,它给了我这个错误:
在为 ValueNotifier 分派通知时引发以下断言: 在构建期间调用 setState() 或 markNeedsBuild()。
【问题讨论】:
-
这是因为你想在
build方法中做一些事情 - 这是错误的,因为build可以被多次调用并且你无法控制 - 如果你有一些使用 @987654323 的数据层@ /Stream使用他们的 API 找出您的数据何时准备就绪并在那里执行您的代码 -
完全同意@pskink。我最近也面临同样的问题,我解决了它,但构建了另一个异步方法。在该方法中,我等待 1 微秒,因此构建方法完成,我更改数据并调用 setState。
-
是否可以在您的方法中添加 Future 而不是等待 1 微秒?我一直认为等待固定时间是不安全(或浪费)的。
标签: firebase flutter dart google-cloud-firestore