😊

ImagePicker ✖️ Provider で1度取得したデータしか返さない現象が謎過ぎるから誰か教えて

2023/05/20に公開
画像取得処理
final _imagePickerProvider =
    FutureProvider.family<List<String>, String>((ref, id) async {
  return await ImagePicker()
      .pickMultiImage()
      .then((value) => value.map((e) => e.path).toList());
});
発火させる側
onPressed: () async {
  await ref
    .read(_imagePickerProvider('id').future)
    .then((value) {
      print('value.length: ${value.length}');
  });
},

引数を固定してるか知らんけど、
1回目のデータ取得は画像を選択できるけど
2回目以降は1回目で取得したデータが一生返ってくる

ナニコレ・・・知らなんだ・・・

いや、普通に引数を変更したら良いだけの話だし
そもそも引数なんて不要だよね

ってなるんだけど、問題の本質はそこじゃなくて
keepAlive の状態だと全部そうなるって事。

コレは例として FutureProvider を使ってるけど

@Riverpod(keepAlive: true)

を使っても同様のことが起きてしまう。

これ、マジでなんでなん。

Discussion