我正在将我的应用程序移植到river_pod,到目前为止一切都很好,但我总是偶然发现同样的问题。在某些情况下,我需要提供者仅根据ref.watch
.
这方面的一个例子是我的最后一个路障:
我有一个公开当前用户位置的 ChangeNotifier 提供程序。此提供程序由多个其他提供程序侦听。其中之一是 FutureProvider,它会在每次位置更改时获取附近的热门帖子。这里的问题是这个位置更新非常频繁(每 10 秒左右),所以这个获取完成了非常不必要的时间。
在这种情况下,我想做的是,在这个 FutureProvider 中,能够获得新位置,但只能有条件地更新(这里的条件是,如果最后一次提取是在 1 公里以外完成的)以避免这种不必要的网络调用和它导致的所有底层 UI 更新。
这意味着两件事,可以访问最后一个状态以进行比较,并且能够取消更新(因为即使我不执行获取并返回最后一个值,UI 仍会将其读取为更新)。
我知道这些机制不是内置的,所以我想知道,river_pod 是解决这个问题的方法吗?
干杯!