0

我一直在使用 flutter-hooks 的useFuture方法,但我需要有条件地使用它(在这种情况下基于用户输入)。我找到了这种方法,但我需要知道是否有更好的方法:

使用useState存储选择了哪些数据,如果选择了一些数据,则将 future 从 null 更改为实际的 future。示例代码:

final selected = useState<int>(null);
final future = useMemoizedFuture(() => selected.value != null ? http.get("someapi") : null);
4

1 回答 1

0

使用数据作为 memoizer 的键。然后在您需要的代码中添加使用未来的条件,而不是在钩子本身中。

final selectedIndex = useState<int?>(null);
final someFuture = useMemoizedFuture(() => http.get("someapi"), [useSelected.value]);
于 2021-09-13T15:57:07.243 回答