【问题标题】:Flutter main.dart initialRout is not WorkingFlutter main.dart initialRout 不工作
【发布时间】:2021-06-12 18:46:39
【问题描述】:

我是这个框架的新手,这里的初始 Rout 不接受登录会话值请帮助我。我尝试使用初始屏幕添加主页,但也无法正常工作我没有得到这有什么问题。

这是我的主页

Future main() async {
  SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
    statusBarColor: Colors.transparent,
    statusBarIconBrightness: Brightness.dark,
  ));
  runApp(Phoenix(child: AmericanCuisine()));
}

class AmericanCuisine extends StatefulWidget {
  @override
  _AmericanCuisineState createState() => _AmericanCuisineState();
}

class _AmericanCuisineState extends State<AmericanCuisine> {
  bool isLoggedIn;
  @override
  void initState() {
    super.initState();
    getData();
  }

  getData() async {
    WidgetsFlutterBinding.ensureInitialized();
    SharedPreferences storage = await SharedPreferences.getInstance();
    setState(() {
      isLoggedIn = storage.getBool("loggedIn");
    });
  }

  @override
  Widget build(BuildContext context) {
    
    return MultiBlocProvider(
      providers: [
        BlocProvider<LanguageCubit>(
          create: (context) => LanguageCubit(),
        ),
        BlocProvider<ThemeCubit>(
          create: (context) => ThemeCubit(),
        ),
      ],

在使用 BlockBuilder 后的这个页面中我如何给出初始路线

      child: BlocBuilder<ThemeCubit, ThemeData>(
        builder: (_, theme) {
          return BlocBuilder<LanguageCubit, Locale>(
            builder: (_, locale) {
              return MaterialApp(
                localizationsDelegates: [
                  const AppLocalizationsDelegate(),
                  GlobalMaterialLocalizations.delegate,
                  GlobalWidgetsLocalizations.delegate,
                ],
                supportedLocales: [
                  const Locale('en'),
                ],
                locale: locale,
                theme: theme,
                //This initial rout is not working.
                initialRoute: isLoggedIn == false ?'/': '/homeOrderAccount',                
                routes: {
                  // When navigating to the "/" route, build the FirstScreen widget.
                  '/': (context) => OpeningScreen(),
                  '/homeOrderAccount': (context) => HomeOrderAccount(),
                },
              );
            },
          );
        },
      ),
    );
  }
}

【问题讨论】:

    标签: flutter dart navigation flutter-routes


    【解决方案1】:

    您不能将 initialRoute 与路由映射一起使用,要么从路由映射中删除“/”,要么删除 initialRoute:

    【讨论】:

    • 谢谢我有卸妆initialRout
    猜你喜欢
    • 2018-08-09
    • 2018-11-04
    • 2021-02-19
    • 1970-01-01
    • 2021-11-19
    • 2019-11-20
    • 1970-01-01
    • 2021-03-29
    • 2020-05-17
    相关资源
    最近更新 更多