我有一个简单的页面,它显示了一个产品,我正在尝试使用riverpod,和futureprovider,但未来只是调用我第一次去的页面?
final productInfo = FutureProvider<Map<String, dynamic>>((ref) async {
final response =
await http.get('https://www.api.com/$clickedID');
final content = json.decode(response.body) as Map<String, dynamic>;
return content;
});
4条答案
按热度按时间u59ebvdq1#
使用最新的Riverpod,您可以执行
ref.refresh(userProvider)
来刷新提供程序。v440hwme2#
请使用
现在您可以使用
watch
侦听提供程序,nkkqxpd93#
没有内置功能,但您可以在以后用相同的将来值覆盖该值。
请考虑与StreamProvider一起使用并在Consumer内部进行监视,以更新overrideWithValue上的UI。
iqjalb3h4#
有两个选择。
1.引用刷新(提供程序)
1.引用无效(提供程序)
请注意,如果使用的是AsyncValue,则在刷新FutureProvider时将返回旧结果,并且AsyncValue.isRefreshing将设置为true: