【问题标题】:riverpod conditional provider state updatesRiverpod 条件提供程序状态更新
【发布时间】:2021-02-25 11:42:14
【问题描述】:

我正在将我的应用程序移植到river_pod,到目前为止一切都很好,但我总是偶然发现同样的问题。在某些情况下,我需要提供者仅根据ref.watch 获取的新值有条件地更新其状态。

这方面的一个例子是我的最后一个障碍:

我有一个公开当前用户位置的 ChangeNotifier 提供程序。此提供程序由多个其他提供程序侦听。其中之一是 FutureProvider,它会在每次位置更改时获取附近的热门帖子。这里的问题是这个位置更新非常频繁(每 10 秒左右),所以这个获取完成的时间非常不必要。

在这种情况下,我想做的是,在这个 FutureProvider 中,能够获得新位置,但只能有条件地更新(这里的条件是,如果最后一次提取是在 1 公里以外完成的)以避免这种不必要的网络调用以及它导致的所有底层 UI 更新。

这意味着两件事,可以访问最后一个状态进行比较,并且能够取消更新(因为即使我不执行获取并返回最后一个值,UI 仍然会读取作为更新)。

我知道这些机制不是内置的,所以我想知道,river_pod 是解决这个问题的方法吗?

干杯!

【问题讨论】:

    标签: flutter riverpod


    【解决方案1】:

    我有同样的问题要解决。我必须比较旧数据和新数据,并且只有在发生更改时才更改提供程序中的状态。

    【讨论】:

      猜你喜欢
      • 2021-11-29
      • 2021-07-18
      • 2021-10-11
      • 2021-05-30
      • 1970-01-01
      • 1970-01-01
      • 2021-08-07
      • 2022-07-22
      • 2021-10-13
      相关资源
      最近更新 更多