gpt4 book ai didi

flutter - 如何使用 Riverpod 在 Flutter 中刷新 FutureProvider 而不再次显示加载指示器?

转载 作者:行者123 更新时间:2023-12-05 04:31:45 51 4
gpt4 key购买 nike

目前我正在刷新一个 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()
)

有什么好的方法吗?

最佳答案

这不再是问题,因为 Riverpod 2.0+ 具有新的刷新行为。它现在在加载时返回以前的数据/错误值。

After a provider has emitted an AsyncValue.data or AsyncValue.error, that provider will no longer emit an AsyncValue.loading.Instead, it will re-emit the latest value, but with the property AsyncValue.isRefreshing to true.

This allows the UI to keep showing the previous data/error when a provider is being refreshed.

Source

关于flutter - 如何使用 Riverpod 在 Flutter 中刷新 FutureProvider 而不再次显示加载指示器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71797953/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com