我想在CustomPageRoute
中使用我的Navigator.pushNamed()
,但是我找不到使用它的方法。
但是,我可以按以下方式使用它
Navigator.push(context, CustomPageRoute(builder: (context) => MyPage()));
这是我的路线:
"/page": (context) => MyPage(), // Can I use CustomPageRoute here, if yes then how?
答案 0 :(得分:0)
最近我遇到了一个同样的问题,该问题用onGeneratePageRoute
钩子“修复”了。
即创建一种动态生成路线的方法:
static Route<dynamic> _onGenerateRoute(RouteSettings settings) {
switch (settings.name) {
case '/onboarding':
return MyCustomPageRoute(builder: (context) => OnboardingScreen(), settings: settings);
}
throw UnsupportedError('Unknown route: ${settings.name}');
}
并将其设置为onGenerateRoute
中的MaterialApp
onGenerateRoute: _onGenerateRoute,
看起来您可能已经根据先前的评论解决了这个问题,但是我想让像我这样的未来人更容易发现这篇文章!
注意:请确保未同时定义路由名称(在这种情况下为/onboarding
),并在routes
上将其设置为MaterialApp
,因为它只会如果您的onGenerateRoute
无法通过您的常规路线解决,则触发它。