Sam*_*oui 3 dart flutter flutter-hooks
我使用 Flutter hooks 通过组合 useMemorized 和 useFuture 来获取数据,如下所示:
final _latestDocsFuture =
useMemoized(() => getLatestDocs());
final _latesetDocsSnapshot = useFuture(_latestDocsFuture);
Run Code Online (Sandbox Code Playgroud)
这个钩子的问题是我无法在发生错误时重新触发 useFuture 来重新获取数据(允许用户点击按钮来尝试再次获取数据)。有没有什么方法可以让我重新触发 useFuture 钩子?
小智 8
该useMemoized钩子接受一个键列表,可用于创建 Future 的新实例,这将导致useFuture再次运行。
我建议使用该类UniqueKey来实现此目的
final reloadKey = useState(UniqueKey());
final latestDocsFuture = useMemoized(() => getLatestDocs(), [reloadKey.value],);
final latestDocsSnapshot = useFuture(latestDocsFuture);
Run Code Online (Sandbox Code Playgroud)
然后每当你想重新加载时,你可以更新reloadKey
reloadKey.value = UniqueKey();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2477 次 |
| 最近记录: |