StreamBuilder 与 Cloud Firestore 的不良做法?

StreamBuilder with Cloud Firestore bad practice?

这个 Whosebug 回答 () 说小部件在它们的构建函数中应该没有副作用,并且当使用 StreamBuilder 时,你不应该创建内联流,而是在 StatefulWidget 的 initState 中初始化.

然而,官方 cloud_firestore 文档显示了这个例子:

此示例在构建函数中创建流。

这真的是不好的做法吗,Firestore 团队在这里错了,还是 Firestore 在幕后做了一些我不知道的事情让这没问题?

这种做法是完全正常的。您链接到的 post 并没有说不创建内联的 Stream。这仅适用于 Futures 并且在 FutureBuidler class.

中的 Flutter 文档中明确说明