android-studio - 在构建过程中调用setState()或markNeedsBuild()

标签 android-studio flutter dart

如果应用程序是使用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/

相关文章:

flutter - 未为 BuildContext 定义 context.select

flutter - 如何在 flutter 中使用反射访问下划线属性?

flutter - 如何更改 TextField 中字符串输入的颜色?

generics - 通用 Dart : '(BuildContext, String) => Padding'类型不是 '(BuildContext, dynamic) => Widget'类型的子类型

conditional - 在 Dart 中的条件中进行变量赋值时如何缩短代码?

java - 为什么我的 android volley 的 http post 请求会抛出错误(localhost)?

android - 无法在 Android Studio 中启动 AVD

android - C/C++ 与 Android Studio 版本 2.2

flutter - Json flutter 解码

performance - Android Studio变慢且无响应