Jos*_*aza 2 navigation dart flutter flutter-navigation
我需要将一些参数发送到命名路由。我想做类似的事情:
Navigator.pushNamed('/route/1');
Run Code Online (Sandbox Code Playgroud)
要么
Navigator.pushNamed('/route?param1=1');
Run Code Online (Sandbox Code Playgroud)
我不知道是否有办法做到这一点,我将MaterialApp与路由器配合使用。
第一种方法是我在应用程序中使用的方法。
Navigator.pushNamed('/route/1');
Run Code Online (Sandbox Code Playgroud)
不要忘记使用onGenerateRoute并传递值。我的应用程序示例:
routes: {
'/': (BuildContext context) => AuthPage(),
'/products': (BuildContext context) => ProductsPage(''),
'/admin': (BuildContext context) =>
ProductsAdminPage(_addProduct, _deleteProduct),
},
onGenerateRoute: (RouteSettings settings) {
final List<String> pathElements = settings.name.split('/');
if (pathElements[0] != '') {
return null;
}
if (pathElements[1] == 'product') {
return MaterialPageRoute<bool>(
builder: (BuildContext context) => ProductPage(pathElements[2]),
);
}
return null;
},
onUnknownRoute: (RouteSettings settings) {
return MaterialPageRoute(
builder: (BuildContext context) => ProductsPage('Error'));
},
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1961 次 |
最近记录: |