Flutter initialRoute会先加载home页面再加载initialRoute指定的页面

在flutter中,我们可能会是这样的逻辑: 打开app的时候判断有没有登录,如果没有登录就显示登录页面,如果登录了就显示主页面。我们路由可能是这样的:

'/login': (context)  => LoginPage(),
'/': (context) => HomePage(),

在main.dart中,有一个变量firstPage, 更加是否登录来设置它的值,当没有登录的时候就是firstPage=’/login’, 并传入MaterialApp构造函数。

MaterialApp(
...
initialRoute: firstPage
...
)

这个时候,我们的HomePage会先加载,再加载LoginPage, 这是为什么呢?
查了官方的资料,它有说明。解决方法也在里面说了。

MaterialApp(
...
initialRoute: firstPage
onGenerateInitialRoutes: (name) {
	//是数组,因为初始化页面可以是/a/b
	return [MaterialPageRoute(builder: (context){
       return LoginPage();
      }),]
}
...
)

这样就不会先加载’/'了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值