Riverpodネタは続く。
カート一覧→タップで数量更新→画面が戻った時にカートが更新・・・されない!データは書き換わっているが、UIが更新されていなかった。
一覧画面のデータFutureProvider.autoDisposeを使って、画面下部のタブに表示している。iPhoneはわからないけど、Androidのエミュレータで試したところ、親→子に遷移する時は、親のProviderはautoDisposeの対象にならないみたい。
このような場合は、強制的にFutureProviderを更新する必要がある。このAPIを使う。
使い方はベリーイージー。グローバルに定義している対象のproviderを引数に入れるだけ。
ref.refresh(yourProvider);
オチとしては、ローカルにデータを書き込む系の場合、たいてい非同期になっている。なので、awaitを入れて非同期の書き込み終了が完了してから(もしくはthenのコールバックで)refreshを呼び出さないとつまらない結果を生む。