【问题标题】:How to resolve type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, dynamic>如何解析类型 '_InternalLinkedHashMap<dynamic, dynamic>' 不是类型 'Map<String, dynamic> 的子类型
【发布时间】:2019-09-21 17:03:38
【问题描述】:

我正在尝试获取用户数据,但这样做时出现以下错误:

Exception: type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, dynamic>

我查看了类似问题的各种解决方案并相应地更改了我的代码(例如:使用 &lt;String, dynamic&gt; 而不是 &lt;dynamic, dynamic&gt;,但仍然看到此错误。

型号sn-p:

// Returns a Pro created from JSON
  factory Pro.fromJson(Map<String, dynamic> json) {
    Pro pro = Pro();

    pro.uid = json['uid'];
    pro.email = json['email'];

并如下获取此数据并在initState()中调用此方法:

Future<Pro> _getPro() async {
    await userDatabaseReference.once().then((DataSnapshot snapshot) {
      Map<String, dynamic> values = snapshot.value;
      values["uid"] = snapshot.key;
      print(snapshot.key); 
      Pro fetchedUser = Pro.fromJson(values);
      setState(() {
        this.pro = fetchedUser;
      });
    });
  }

如果我使用Map&lt;String, dynamic&gt; values,则会在同一行出现错误,如果我使用Map&lt;dynamic, dynamic&gt; values,则会在以下位置出现错误: Pro fetchedUser = Pro.fromJson(values)

因为,Pro.fromJson(values) 具有参数类型 Map&lt;String, dynamic&gt;,这与我用来声明 values 的参数类型相同,但仍然不确定它为什么会抛出错误。

【问题讨论】:

    标签: firebase-realtime-database flutter


    【解决方案1】:

    请尝试如下我们首先将值转换为 Map.from() ,然后将其与 Pro 模型的 fromJson 方法一起使用:

    Future<Pro> _getPro() async {
        await userDatabaseReference.once().then((DataSnapshot snapshot) {
          Map<String, dynamic> values = snapshot.value;
          values["uid"] = snapshot.key;
          print(snapshot.key); 
          final mapJsonCategory = Map<String, dynamic>.from(values);
          Pro fetchedUser = Pro.fromJson(mapJsonCategory);
          setState(() {
            this.pro = fetchedUser;
          });
        });
      }
    

    【讨论】:

    • 太棒了..很高兴知道我们首先需要将值转换为 Map.from() ,这就是我被卡住的地方。
    猜你喜欢
    • 2018-12-14
    • 2019-04-03
    • 1970-01-01
    • 2021-04-03
    • 2019-05-02
    • 2019-06-07
    • 2020-03-03
    • 2020-07-03
    • 2021-06-17
    相关资源
    最近更新 更多