如何在StreamProvider中使用updateShouldNotify?

时间:2020-04-30 09:23:42

标签: flutter flutter-provider


我不明白如何在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

1 个答案:

答案 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