如何在使用useFuture flutter挂钩时重新加载数据



我使用Flutter钩子通过组合useMemorialed和useFuture来获取数据,如下所示:

final _latestDocsFuture =
useMemoized(() => getLatestDocs());
final _latesetDocsSnapshot = useFuture(_latestDocsFuture);

这个钩子的问题是,如果出现错误,我无法重新触发useFuture来重新获取数据(允许用户点击按钮再次尝试获取数据(。有什么方法可以让我重新触发useFuture钩子吗?

useMemoized钩子接受一个可用于创建Future的新实例的键列表,这将导致useFuture再次运行。

我建议使用UniqueKey类来实现这个

final reloadKey = useState(UniqueKey());
final latestDocsFuture = useMemoized(() => getLatestDocs(), [reloadKey.value],);
final latestDocsSnapshot = useFuture(latestDocsFuture);

然后,无论何时您希望重新加载,都可以更新reloadKey的值

reloadKey.value = UniqueKey();

相关内容

  • 没有找到相关文章

最新更新