繁体   English   中英

参数类型“动态”不能分配给参数类型“映射”<string, dynamic> ' 来自 Lint vs Pedantic</string,>

[英]The argument type 'dynamic' can't be assigned to the parameter type 'Map<String, dynamic>' from Lint vs Pedantic

我刚刚将 VSCode 中的 linter 从 Pedantic 切换到 Lint,我的应用程序的一半亮了。 除了一串类型分配错误外,大部分都很容易修复。 以下代码主要取自示例,出现以下错误:

“参数类型 'dynamic' 不能分配给参数类型 'Map<String, dynamic>'”。

static List<Treatment> decodeData(String treatments) =>
      (jsonDecode(treatments) as List<dynamic>)
          .map<Treatment>((item) => Treatment.fromJson(item))
          .toList();

谁能指出我正确的方向? 谢谢

尝试添加.cast<Map<String, dynamic>>() ,如下所示:

  static List<Treatment> decodeData(String treatments) =>
      (jsonDecode(treatments) as List<dynamic>)
          .cast<Map<String, dynamic>>()
          .map<Treatment>((item) => Treatment.fromJson(item))
          .toList();

您可以尝试在最后投射它

static List<Treatment> decodeData(String treatments) =>
      (jsonDecode(treatments) as List<dynamic>)
          .map<Treatment>((item) => Treatment.fromJson(item))
          .toList() as Map<String, dynamic>;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM