如果应用程序是使用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);
}
},
),
请帮忙
最佳答案
您无法在构建过程中推送新路线。而是将逻辑移到您的initState。
@override
void initState() {
isFirstTime().then((data) {
if(data) {
Navigator.pushNamed(context, '/howtouse');
}
}
super.initState();
}
关于android-studio - 在构建过程中调用setState()或markNeedsBuild(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62390717/