我想根据“导航”键将用户重定向到所需的页面,我尝试这样进行:
final _bottomAppBarItem = [
{
'iconData': Icons.airplay,
'text': 'news',
'navigation': NewsPage(),
},
{
'iconData': Icons.person,
'text': 'profile',
'navigation': UserProfilePage(),
}];
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => item['navigation']));
要么
final _bottomAppBarItem = [
{
'iconData': Icons.airplay,
'text': 'news',
'navigation': 'NewsPage',
},
{
'iconData': Icons.person,
'text': 'profile',
'navigation': 'UserProfilePage',
}];
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => item['navigation']()));
但是在两种情况下都发现有错误,我该如何忍受呢?
最佳答案
您可以使用here中描述的命名路由。您可以使用自定义字符串参数化您的路线。
命名路由的一个简单用例:
onPressed: () {
// Navigate to the second screen using a named route.
Navigator.pushNamed(context, '/second');
}
在这种情况下的另一种解决方案是使用mirrors,这是这种情况的开销。
关于flutter - 如何在导航器中从字符串创建类(页面),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59481288/