使用useFuture flutter hook时如何重新加载数据

How to reload data when using useFuture flutter hook

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

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

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

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

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

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

然后每当你想重新加载时,你可以更新 reloadKey

的值
reloadKey.value = UniqueKey();