Flutter中如何修复_Map<dynamic,dynamic>与Map<String,dynamic>不兼容的TypeError?
解决Map类型不兼容的报错问题
问题原因
你定义的_datiMap没有指定具体泛型类型,默认会被推断为Map<dynamic, dynamic>,但调用addAll时传入的是键、值均为字符串的Map<String, dynamic>,两种Map类型不兼容,因此抛出类型转换错误。
修复方案
给_datiMap指定明确的泛型类型即可解决:
// 直接定义为Map<String, dynamic>类型 Map<String, dynamic> _datiMap = box.get("exc") ?? {};
如果box.get("exc")返回的Map类型不确定,可强制转换确保类型一致:
Map<String, dynamic> _datiMap = (box.get("exc") ?? {}) as Map<String, dynamic>;
这样修改后,addAll接收的参数类型与_datiMap的类型完全匹配,就不会再出现类型不兼容的报错了。
内容的提问来源于stack exchange,提问作者Jonathan
相关产品推荐
相关产品推荐

