class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MY APP',
debugShowCheckedModeBanner: false,
scrollBehavior: MyCustomScrollBehavior(),
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
body: SingleChildScrollView(
child: globals.checkLoggedIn()
),
),
);
}
}
Это главный файл
main.dart, который вызывает первое состояние приложения, НО
мне нужно вернуть из функции checkLoggedIn():
checkLoggedIn() async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
bool? isLoggedIn = prefs.getBool('isLogin');
if (isLoggedIn != null) {
if (isLoggedIn) {
return Main();
}
else {
return Login();
}
}
return OpenScreen();
}
одно из состояний по результатам, входил ли пользователь в приложение или нет, для этого я использую sharedPreferences, но функция тогда должна быть асинхронной, но тогда в main.dart возвращается значение
Future<Widget>
, а метод child может принимать только Widget, сделать функцию не асинхронной я не могу, также как и класс асинхронным (т.к. build возвращает только Widget). Вопрос: как совместить возвращение значения из SharedPreferences (или есть какая-то альтернатива) и исходный код main.dart (или поменять его так, чтобы это не повлияло на работу остальной программы), если что, я не очень умный, про FutureBuilder я знаю, но вообще не понял как этим пользоваться...