Flutter Hooks – useState initial value

Issue

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?

Solution

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
    })

}

Answered By – hyobbb

Answer Checked By – Mildred Charles (FlutterFixes Admin)

Leave a Reply

Your email address will not be published. Required fields are marked *