为什么在构建 Navigator 后初始路由不是堆栈中的唯一路由?
Why is initial route not the only route on the stack after building Navigator?
如果定义了初始路由,Navigator 将使用两条路由构建堆栈:初始路由和“/”路由。
查看 link 上的示例,该示例显示作为初始路由的主页有一个 returns 到“/”路由的后退按钮。
如何使初始路由成为堆栈中的唯一路由?
因此,当您使用 switch
时,您 return default
中的 null
,它将 HomePage
设置为 initialRoute
,并让机器知道,initialRoute
就是那个,Stack
中没有任何东西可以 return,除了 HomePage
。因此,您再也看不到后退按钮了。
switch (settings.name) {
case HomePage.route:
return MaterialPageRoute(builder: (_) => HomePage());
case OverviewPage.route:
return MaterialPageRoute(builder: (_) => OverviewPage());
default:
// this would do the job
return null;
}
link我也做了修改,你也可以试试。试用 this link,然后告诉我。
像这样尝试,initialRoute:'/' in MaterialApp
const String homeRoute = '/';
void main() {
runApp(
MaterialApp(
title: 'Example',
initialRoute:homeRoute,
onGenerateRoute: generateRoute
),
);
}
如果定义了初始路由,Navigator 将使用两条路由构建堆栈:初始路由和“/”路由。
查看 link 上的示例,该示例显示作为初始路由的主页有一个 returns 到“/”路由的后退按钮。
如何使初始路由成为堆栈中的唯一路由?
因此,当您使用 switch
时,您 return default
中的 null
,它将 HomePage
设置为 initialRoute
,并让机器知道,initialRoute
就是那个,Stack
中没有任何东西可以 return,除了 HomePage
。因此,您再也看不到后退按钮了。
switch (settings.name) {
case HomePage.route:
return MaterialPageRoute(builder: (_) => HomePage());
case OverviewPage.route:
return MaterialPageRoute(builder: (_) => OverviewPage());
default:
// this would do the job
return null;
}
link我也做了修改,你也可以试试。试用 this link,然后告诉我。
像这样尝试,initialRoute:'/' in MaterialApp
const String homeRoute = '/';
void main() {
runApp(
MaterialApp(
title: 'Example',
initialRoute:homeRoute,
onGenerateRoute: generateRoute
),
);
}