Search code examples
flutterdart

How to navigate inside initState() in Flutter


@override
void initState() {
final Future<bool> is_initialized = IsInitialized();

if (is_initialized == false) {
  GenerateDefaultPreferences();
  Navigator.push(context, MaterialPageRoute(builder: (context) => LanguageSelection())); //?
} else {
  SynchronizeDLIfSet();
}
  }

This is in my stateless widget. How can I navigate inside an initState() in Flutter?

I am trying to make it navigate to LanguageSelection() if the app didn't initialize before.


Solution

  • @override
    void initState() {
      super.initState();
      final Future<bool> is_initialized = IsInitialized();
    
      is_initialized.then((value) {
        if (!value) {
          GenerateDefaultPreferences();
          WidgetsBinding.instance.addPostFrameCallback((_) {
            Navigator.push(context, MaterialPageRoute(builder: (context) => LanguageSelection()));
          });
        } else {
          SynchronizeDLIfSet();
        }
      });
    }