让我们考虑一下,我们有一个页面列表,根据一些逻辑,我们想使用导航器显示相应的路线。我们该怎么做?
final List<dynamic> components = [ PageA, PageB ]
..
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => new components[0]()),
);
答案 0 :(得分:3)
材料应用程序小部件内有路线属性。您应该使用它:
MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Sample',
home: Wrapper(),
routes: {
CarsList.routeName: (ctx) => PageOne(),
CarDisplay.routeName: (ctx) => PageTwo(),
OrdersScreen.routeName: (ctx) => PageThree(),
EditCar.routeName: (ctx) => PageFour(),
},
),
在使用该功能之前,请确保每个小部件中都有一个名为routeName的静态变量。
static const routeName = '/PageOne';
答案 1 :(得分:0)
我不确定我是否完全了解您的发行人,但如果您的问题是在何处/如何放置条件,则有两种方法可以这样做:
假设根据条件,您何时导航至components [0]()或components [1]():
第一
final List<dynamic> components = [ PageA, PageB ]
..
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => condition ? new components[0]() : new component[1]()
),
);
第二:
final List<dynamic> components = [ PageA, PageB ]
..
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
if (condition) {
return new components[0]()
} else {
return new component[1]()
}
),
);