我不明白如何在StreamProvider中使用updateShouldNotify。
(新)StreamProvider StreamProvider({Key key},{Stream Function(BuildContext)create},{FirebaseUser initialData},{FirebaseUser Function(BuildContext,Object)catchError},{bool Function(FirebaseUser,FirebaseUser)updateShouldNotify}, {bool lazy},{Widget child})
我在文档中没有得到太多帮助 https://pub.dev/documentation/provider/latest/provider/StreamProvider-class.html
帮助plz:D
答案 0 :(得分:0)
您可以从 Rémi Rousselet 本人(Provider 包的创建者)那里得到答案:
https://stackoverflow.com/questions/57365207/streamprovider-not-updating-state
<块引用>大多数提供程序(不包括 ChangeNotifierProvider)的默认行为是假设传递的值是不可变的。因此,如果您的流发出与先前发出的值相同的值,则不会重建依赖项。
updateShouldNotify
的默认行为如下,您可以在此处找到示例:
https://www.didierboelens.com/2019/07/provider-points-of-interest-points-to-care-about
updateShouldNotify: (previous, current) => (current != previous),
如果此行为对您有好处,则无需使用/覆盖该参数。但是,如果您想更改此默认行为以在每次有新值时更新(无论是相同值还是新值),请使用参数覆盖它:
updateShouldNotify: (_, __) => true