Этот вопрос действительно очень похож на этот . Я следовал принятому ответу, но ничего не произошло.
Я пытаюсь изменить свою первую целевую страницу на main.dart
, будь то HomePage()
или OnBoardingPage()
. Я получаю данные (bool) из общих настроек и выполняю проверку в первую очередь.
Как видите, OnBoardingPage()
- это экран разовых событий.
Здеськод:
class MyApp extends StatelessWidget {
SharedPrefs prefs = SharedPrefs();
Future<bool> _initBro() async {
var redirect = await prefs.read("onboard") ?? false;
print("main => $redirect");
return redirect;
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
fontFamily: 'CM Sans Serif',
platform: TargetPlatform.android,
),
home: (_initBro().then(val => val == true)) ? HomePage() : OnBoardingPage(),
// home: HomePage(),
debugShowCheckedModeBanner: false,
);
}
}
Проблема в строке home:
.
![main.dart](https://i.stack.imgur.com/1GHnJ.jpg)
Я не совсем понимаю, почемудо сих пор дает мне такую ошибку. Я изменил код с await, но, кажется, это доставляет мне гораздо больше проблем. Также я изменил это немного так:
home: _initBro().then((val) {
return (val) ? HomePage() : OnBoardingPage();
}),
Но все еще нет надежды.
Я новичок с Флаттером, а также с Дартом. Любая помощь будет очень признательна.
Большое спасибо за внимание, ребята.