Как запустить другие методы, а не runApp в flutter

#flutter #dart #flutter-dependencies

#flutter #dart #flutter-зависимости

Вопрос:

здесь, в основной функции, сначала я хочу получить данные из хранилища и проверить их, чтобы я мог заблокировать некоторые маршруты, если пользователь не вошел в систему

я использую JWT и некоторые authData, чтобы проверить, истек ли срок действия токена или нет во время запуска приложения

 void main() => {
var authData = await TokenStorageService.authDataOrEmpty;
       runApp(
        MaterialApp(
          title: 'routes',
          theme: ThemeData(
            scaffoldBackgroundColor: Color(0xFFF1F1F1),
          ),
          initialRoute: '/', // Start the app with the "/" named route.
          routes: {
            '/': (context) => HomePage(),
// build the HomePage widget.
            WelcomeScreen.id: (context) => WelcomeScreen(),

            Profile.id: (context) => Profile(),
//build welcome screen
            LoginScreen.id: (context) => LoginScreen(),
// build the Login widget.
            RegistrationScreen.id: (context) => RegistrationScreen(),
// build the Register widget.
            '/userLeave': (context) => UserLeave(),
//  build the UserLeave widget.
            '/leaveRequest': (context) => LeaveRequest(),
//  build the LeaveRequest widget.
            '/ownLeave': (context) => OwnLeave(),
//  build the LeaveRequest widget.
            '/allLeaves': (context) => AllLeave(),
//  build the LeaveRequest widget.
          },
        ),
      )
    };
 

Ответ №1:

вы можете пометить main метод как асинхронный, и все готово

 Future<void> main() async {
  var authData = await TokenStorageService.authDataOrEmpty;
  // your other code
}
 

Комментарии:

1. Я понял это, теперь я использую код внутри future builder