flutter - Flutter 向新路由发送数据,说明参数未定义
问题描述
我正在尝试将标题传递到下一页。请记住,第一页和第二页位于两个不同的 dart 文件中
第一页:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Museo(title: newMuseo[index]['title'])
)
);
第二页:
class Museo extends StatelessWidget {
final String title;
Museo({Key key, @required this.title}) : super(key: key);
Widget build(BuildContext context){
...
}
}
它可以工作,但 Android Studio 一直告诉我:
The named parameter 'title' isn't defined.
我试图删除标题:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Museo(newMuseo[index]['title'])
)
);
但它不再起作用了。
lib/Home.dart:110:70: Error: Too many positional arguments: 0 allowed, but 1 found.
Try removing the extra positional arguments.
builder: (context) => Museo(newMuseo[index]['title'])
^
lib/Museo.dart:294:3: Context: Found this candidate, but the arguments don't match.
Museo({Key key, @required this.title}) : super(key: key);
^^^^^
我遵循了本指南: https ://flutter.dev/docs/cookbook/navigation/passing-data
解决方案
考虑您有多个参数。现在,您将需要映射它们中的每一个。因此,您需要在传递参数时定义参数。你可以试试这个:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Museo(title: newMuseo[index]['title'])
)
);
请从这里阅读更多内容。
推荐阅读
- javascript - jQuery 数据表在标题和正文部分之间存在一些差距
- java - 密码 - PHP 中的 AES/CBC/PKCS5padding
- kubernetes - 容器外的 Kubernetes 健康检查
- html - 为什么 CSS 与 Angular 6 选择器组件不匹配?
- javascript - 将所有控制台 javascript 输出转储为字符串
- octobercms - 如何在 octobercms 中显示来自多个输入文件的图像
- javascript - Javascript 中的模式匹配表达式
- angular - 无法在 Angular 7 应用程序中运行自定义 Angular 7 元素包
- r - R:根据两个不同的变量创建 ID
- excel - 标准排序/索引