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

标签 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']));

要么
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/

相关文章:

dart - 将 map 列表转换为 Dart 中的一张 map ?

flutter - Flutter 中的 fontSize 和 textScaleFactor 有什么区别?

flutter - sudo gem 安装 cocoapods 错误 : Failed to build gem native extension. ?

Flutter从谷歌云平台加载Image.network()

ios - 词法或预处理器问题 (Xcode) : 'Flutter/Flutter.h' file not found

dart - 在 Flutter 中创建图像轮播

flutter - 如何检查是否使用 dart 中的命名构造函数创建了元素?

android-studio - Flutter插件未安装在IntelliJ 2020.1版中

Dart - NoSuchMethodError : Class 'Module' has no instance getter 'String'

flutter - 如何让 url 启动器发送电子邮件?