rah*_*aha 5 dictionary object dart
我有一个小部件,它在某些时候导航到不同的页面。喜欢:-
Navigator.of(context).pushNamed(
NextPage.routeName,
arguments: {
"tag": this.tag,
"data": this.data,
},
);
Run Code Online (Sandbox Code Playgroud)
现在很清楚即使argument参数接受类型Object但它也接受,Map因为这句话没有给我一个错误。
在NextPage我访问的值中,如:-
tag: ModalRoute.of(context).settings.arguments["tag"].toString(),
Run Code Online (Sandbox Code Playgroud)
现在 vscode 给了我错误:-
The operator '[]' isn't defined for the class 'Object'.
Try defining the operator '[]'.dart(undefined_operator)
Run Code Online (Sandbox Code Playgroud)
我不知道为什么vscode给我一个错误。所以,要么Object应该有[]要么Map应该是对象的类型。
或者有一些关于日期的不清楚。
注: data是对象。
如何消除此错误?
Abi*_*n47 21
ModalRoute.settings.arguments 是类型为 的属性Object。您不能[]在Object. Dart 中的所有内容都继承自Object,这就是为什么您可以将参数传递给 ,ModalRoute而不管它是什么。但是,为了使用它,您需要首先将它转换为您希望使用的类型。
tag: (ModalRoute.of(context).settings.arguments as Map)["tag"].toString(),
Run Code Online (Sandbox Code Playgroud)