我正在尝试将相同的参数传递给 StreamProvider 但我无法使其工作,这段代码工作得很好
final dataStreamProvider = StreamProvider.autoDispose<DataModel>((ref) {
return Repository().fetchData(1, 2);
});
Consumer(
builder: (context, watch, child) {
AsyncValue leagueInfo = watch(dataStreamProvider);
return leagueInfo.when(
data: (data) {
print(data);
return Text("Data");
},
loading: () => Loader(""),
error: (err, stack) => Text('Error: $err'),
);
},
)
但是当我尝试将一些参数传递给 StreamProvider 时,我得到了对流的无限调用
// This trigger an infinit call to the stream 'Repository().fetchData'
final dataStreamProvider = StreamProvider.autoDispose.family<DataModel, Map<String, dynamic>>((ref, params) {
return Repository().fetchData(params['id'], params['id2']);
});
Consumer(
builder: (context, watch, child) {
AsyncValue leagueInfo = watch(dataStreamProvider({'id': 1, 'id2': 2}));
return leagueInfo.when(
data: (data) {
print(data);
return Text("Data");
},
loading: () => Loader(""),
error: (err, stack) => Text('Error: $err'),
);
},
)