首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在构建时调用futureprovider (riverpod)

如何在构建时调用futureprovider (riverpod)
EN

Stack Overflow用户
提问于 2020-12-13 01:10:01
回答 3查看 484关注 0票数 0

我有一个简单的页面,其中显示了一个产品,我正在尝试使用riverpod和futureprovider,但未来只在我第一次访问该页面时才被称为?

代码语言:javascript
运行
复制
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;
});
EN

回答 3

Stack Overflow用户

发布于 2021-09-21 15:14:28

使用最新的Riverpod,您可以执行ref.refresh(userProvider)来刷新提供程序。

票数 2
EN

Stack Overflow用户

发布于 2020-12-13 01:19:06

请使用

代码语言:javascript
运行
复制
final userProvider = StreamProvider<User>(
 final response =
      await http.get('https://www.api.com/$clickedID');
  final content = json.decode(response.body) as Map<String, dynamic>;
  return content;
);

现在,您可以使用watch监听提供者,

代码语言:javascript
运行
复制
  AsyncValue<User> user = watch(userProvider);
票数 0
EN

Stack Overflow用户

发布于 2021-02-10 16:34:57

没有内置功能,但您可以在以后使用相同的将来重写该值。

代码语言:javascript
运行
复制
recallProductInfoFutureProvider() {
final response = http.get('https://www.api.com/$clickedID');
  final content = json.decode(response.body) as Map<String, dynamic>;
productInfo.overrideWithValue(content)
}

考虑使用StreamProvider和观看内部消费者来更新overrideWithValue上的UI。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65267606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档