3

私は自分のアプリを river_pod に移植しています。これまでのところ素晴らしいですが、いつも同じ問題に出くわします。によって取得された新しい値に応じて、条件付きでのみプロバイダーの状態を更新する必要がある場合がありますref.watch

この例は、私の最後の障害です。

現在のユーザーの場所を公開する ChangeNotifier プロバイダーがあります。このプロバイダーは、他の複数のプロバイダーによってリッスンされています。それらの 1 つは、場所が変わるたびに近くのトレンド投稿を取得する FutureProvider です。ここでの問題は、この場所が非常に頻繁に (10 秒ごとに) 更新されるため、このフェッチに非常に不必要な時間がかかることです。

その状況で私がやりたいことは、この FutureProvider で、新しい位置を取得できるが、条件付きでのみ更新できるようにすることです (ここでは、最後のフェッチが 1 km 以上離れた場所で行われた場合)、この不要なネットワーク呼び出しを回避し、それによって引き起こされるすべての基になる UI の更新。

これは、比較を行うために最後の状態にアクセスできることと、更新をキャンセルできることの 2 つのことを意味します (ここでは、フェッチを実行して最後の値を返さなくても、UI はそれを更新として読み取ります)。 )。

これらのメカニズムは組み込まれていないことを理解しているので、この問題に対処するために river_pod の方法はあるのでしょうか?

乾杯!

4

1 に答える 1

0

私は解決すべき同じ問題を抱えていました。古いデータと新しいデータを比較し、変更がある場合にのみプロバイダーの状態を変更する必要がありました。

于 2021-11-12T04:26:38.777 に答える