【问题标题】:How to use updateShouldNotify in StreamProvider?如何在 StreamProvider 中使用 updateShouldNotify?
【发布时间】:2020-08-14 14:54:37
【问题描述】:


我不明白如何在 StreamProvider 中使用 updateShouldNotify。

(new) 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

请帮忙 :D

【问题讨论】:

    标签: flutter flutter-provider


    【解决方案1】:

    您可以从 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
    

    【讨论】:

      猜你喜欢
      • 2021-05-21
      • 2021-03-19
      • 2021-10-20
      • 2021-02-03
      • 2020-07-24
      • 2021-11-16
      • 2020-08-08
      • 1970-01-01
      • 2020-01-15
      相关资源
      最近更新 更多