目前,我正在刷新一个FutureProvider,负责从Firebase获取数据并使用liquid_pull_to_refresh包在简单的ListView中显示它,这会导致列表消失,再次显示加载指示器,最后再次显示列表。
相反,我希望保持列表显示,并在获取完成后仅更新它。我正在使用Riverpod进行状态管理。
提供程序:
final userProfileProvider = FutureProvider.family<FullUserModel?, String?>((ref, value) => ref.read(databaseServiceProvider).getFullUserModel(value));
刷新部分:
LiquidPullToRefresh(
onRefresh: () async {
ref.refresh(userProfileProvider(uid));
},
child: ListView()
)
有没有好的方法来解决这个问题?
.when
语法来处理错误、加载和数据状态。如果你在谈论重新加载(即在提供程序已经发出AsyncValue.data或AsyncValue.error之后发生的加载),你可以选择在AsyncValue.isRefreshing==true
时显示进度对话框。 - Muhammad Vaid