使用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();
我正在使用 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();