问题描述:
代码如下
@riverpod
Future<String> getUserInfo(GetUserInfoRef ref) async {
ResponseModel res = await TestApi.getUserInfo();
return res.data['name'];
}
// UI Page
Widget build(BuildContext context) {
final request = ref.watch(getUserInfoProvider);
return Scaffold(
appBar: AppBar(title: const Text("MyPage2")),
body: switch (request) {
AsyncData(:final value) => Text(value),
AsyncError(:final error) => MyErrorWidget(
onReload: () {
// Reload button click callback
ref.refresh(getUserInfoProvider);
},
),
_ => const CircularProgressIndicator(color: Colors.red),
},
);
}
我尝试刷新提供程序,但没有成功。我希望有一种方法可以使提供程序状态在刷新提供程序时从加载开始。否则,我只能在 MyErrorWidget 中添加一个加载小部件来处理它。
我建议您查看 Riverpod 文档,了解如何实现拉动刷新。
在上面提到的示例中,刷新 FutureProvider:
onRefresh: () => ref.refresh(getUserInfoProvider.future),
已使用。