如果该应用程序是使用FutureBuilder()
首次启动的,我正在尝试启动“如何使用”屏幕。
isFisrtTime()
如果是首次启动该应用程序,则返回true。
这是FutureBuilder
代码:
body: FutureBuilder(
future: isFirstTime(),
initialData: Container(),
builder: (context, snapshot){
if(snapshot.data == true){
Navigator.pushNamed(context, '/howtouse');
return (currentScreen == 'Home')
? HomeBody()
: CBook(changeScreen: changeCurrentScreen);
}
else {
return (currentScreen == 'Home')
? HomeBody()
: CBook(changeScreen: changeCurrentScreen);
}
},
),
请帮助
答案 0 :(得分:1)
您无法在构建过程中推送新路线。而是将逻辑移到您的initState。
@override
void initState() {
isFirstTime().then((data) {
if(data) {
Navigator.pushNamed(context, '/howtouse');
}
}
super.initState();
}