Reputation: 567
I just started using Flutter Hooks and have been trying to understand how I would initialize a useState
hook with a value that is retrieved asynchronously? In my case, from SharedPreferences
Normally you would say final boolValue = useState(false)
In my case I need to first evaluate a Future<bool>
then set my subsequent call like final boolVal = useState(async value)
how can I achieve this using hooks, would I have to resolve the value before entering this widget and simply pass it down?
Upvotes: 4
Views: 3677
Reputation: 361
How about using HookBuilder?
final future = useMemoized(()=> someAsyncFunction());
final snapshot = useFuture(future);
...
if(snapshot.hasData){
return HookBuilder(
builder : (_) {
final state = useState(snapshot.data);
//... return widget using state.value
})
}
Upvotes: 4