【发布时间】:2021-07-19 07:49:53
【问题描述】:
我有一个钱包提供商,它使用未来的提供商从服务器获取钱包余额,一切正常,我遇到的唯一问题是刷新钱包提供商以使用 context.refresh 从服务器获取最新数据(钱包提供者)。这很好用,但我不希望加载小部件在尝试从服务器获取新数据时显示,而是在新数据从服务器返回之前显示旧数据。
下面是代码:
final walletProvider =
FutureProvider<WalletModel>((ref) => WalletService().fetchWalletBalance());
Consumer(builder: (context, watch, child) {
final wallet = watch(walletProvider);
return Column(
children: [
wallet.when(
data: (value) {
return walletContainer(
context: context, walletModel: value);
},
loading: () => walletLoading(),
error: (err, stack) {
return Text(
'${err.toString()}',
},
)
],
),
然后我从一个按钮调用context.refresh(walletProvider);,它会刷新但显示加载器小部件,这不是我想要的。我希望在刷新时显示以前的数据。
请帮忙看看如何实现这个目标?
【问题讨论】:
标签: flutter dart provider riverpod