'Object?' 类型的值不能分配给类型为“Map<String, dynamic>”的变量。颤振相关问题

时间:2021-05-29 16:37:39

标签: flutter

 RouteFactory _routes() {
    return (settings) {
      final args = settings.arguments;
      final Map<String, dynamic> arguments = **args** ; //here is error in args
      Widget screen;
      switch (settings.name) {
        case LocationRoute:
          screen = Locations();
          break;
        case LocationDetailRoute:
          screen = LocationDetail(arguments['id']);
          break;
        default:
          return null;
      }
      return MaterialPageRoute(builder: (BuildContext context) => screen);
    };
  }

这里在 args 中有一个错误(“Object?”类型的值不能分配给“Map”类型的变量。 尝试更改变量的类型,或将右侧类型转换为 'Map'。)

1 个答案:

答案 0 :(得分:1)

手动将 args 投射为 Map<String, dynamic>

final Map<String, dynamic> arguments = args as Map<String, dynamic>;