如何在导航器中从字符串创建类(页面)

时间:2019-12-25 19:27:54

标签: flutter dart

我想根据“导航”键将用户重定向到所需的页面,我尝试过这种方式:

final _bottomAppBarItem = [
{
  'iconData': Icons.airplay,
  'text': 'news',
  'navigation': NewsPage(),
},
{
  'iconData': Icons.person,
  'text': 'profile',
  'navigation': UserProfilePage(),
}];

Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => item['navigation']));

OR

final _bottomAppBarItem = [
{
  'iconData': Icons.airplay,
  'text': 'news',
  'navigation': 'NewsPage',
},
{
  'iconData': Icons.person,
  'text': 'profile',
  'navigation': 'UserProfilePage',
}];

Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => item['navigation']()));

但是在两种情况下都发现有错误,我该如何忍受呢?

1 个答案:

答案 0 :(得分:0)

您可以使用here中所述的命名路由。您可以使用自定义字符串参数化路线。

命名路由的简单用例:

onPressed: () {
  // Navigate to the second screen using a named route.
  Navigator.pushNamed(context, '/second');
}

在这种情况下的另一种解决方案是使用mirrors