这个问题真的非常相似this one https://stackoverflow.com/questions/54691370/flutter-returning-a-bool-type-from-a-futurebool-method。我已遵循已接受的答案,但没有发生任何事情。
我尝试修改我的第一个登陆页面main.dart
无论是HomePage()
or 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:
line.
我不太明白为什么它仍然给我这样的错误。
我已经用等待更改了代码,但是,它似乎给我带来了更多麻烦。我也做了一些修改,如下所示:
home: _initBro().then((val) {
return (val) ? HomePage() : OnBoardingPage();
}),
但还是没有希望。
我对 Flutter 很陌生,对 Dart 也很陌生。任何帮助将非常感激。
非常感谢大家的关注。