使用ModalRoute检索参数时出错

时间:2019-10-21 23:05:31

标签: flutter dart

每次调用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。我试图使用一个类来传递值而不是映射,但是我遇到了相同的错误。不知道我在做什么错。

2 个答案:

答案 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
);

}