😊
ImagePicker ✖️ Provider で1度取得したデータしか返さない現象が謎過ぎるから誰か教えて
画像取得処理
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