I’m using Flutter hooks to fetch data by combining useMemorized and useFuture like this:
final _latestDocsFuture = useMemoized(() => getLatestDocs()); final _latesetDocsSnapshot = useFuture(_latestDocsFuture);
The problem with this hook is I can’t re-trigger the useFuture to re-fetch the data in case of an error (allowing the user to tap on a button to try and fetch the data again).
Is there any method that can let me re-trigger the useFuture hook?
useMemoized hook accepts a list of keys that can be used to create new instances of the Future, which would cause
useFuture to run again.
I’d suggest using the
UniqueKey class to achieve this
final reloadKey = useState(UniqueKey()); final latestDocsFuture = useMemoized(() => getLatestDocs(), [reloadKey.value],); final latestDocsSnapshot = useFuture(latestDocsFuture);
Then whenever you wish to reload, you can update the value of
reloadKey.value = UniqueKey();
Answered By – Luke Greenwood
Answer Checked By – Cary Denson (FlutterFixes Admin)