每次调用modalroute从命名路由中检索参数时,我都会得到null。
这是代码段:
dbm.open( filepath ...)
这是我检索参数的地方:
Navigator.pushNamed(
context,
VerifyCode.routeName,
arguments: {'code': randValue,},
);
}
我应该从地图上获取一个整数,但是却出现了错误:
Widget build(BuildContext context)
{
//Get the dialog provider to display information
alertViewModel = Provider.of<AlertViewModel>(context);
//Retrieve the route argument
final routeArgs =
ModalRoute.of(context).settings.arguments as Map<String, int>;
final securityCode = routeArgs['code']; <-- Error happens here
print('Code =' + securityCode.toString());
return Container()
routeArgs始终为null。我试图使用一个类来传递值而不是映射,但是我遇到了相同的错误。不知道我在做什么错。
答案 0 :(得分:0)
尝试这种方式:-
String rawJson = '{"code":randValue}';
Map<String, dynamic> map = jsonDecode(rawJson);
Navigator.pushNamed(context, VerifyCode.routeName, arguments: map);
使用:-
接收数据final Map<String, dynamic> map = ModalRoute.of(context).settings.arguments;
您可以使用
获取数据map["code"]
答案 1 :(得分:0)
将设置传递给 MaterialPageRoute
Route<dynamic> generateRoute(RouteSettings settings) {
return MaterialPageRoute(
builder: (BuildContext context) {
//some custom code
return Page();
},
settings: settings
);
}