Flutter:没有为“Object”类型定义运算符“[]”。尝试定义运算符'[]'
Posted
技术标签:
【中文标题】Flutter:没有为“Object”类型定义运算符“[]”。尝试定义运算符\'[]\'【英文标题】:Flutter: the operator '[]' isn't defined for the type 'Object'. Try defining the operator '[]'Flutter:没有为“Object”类型定义运算符“[]”。尝试定义运算符'[]' 【发布时间】:2021-04-03 15:18:15 【问题描述】:如何获取嵌套对象值? print(_user.userLocation()['location']);
返回country: Eesti, city: Tallin
所以,我尝试使用_user.userLocation()['location']['city']
来获取值Tallinn
。但是,我得到了
The operator '[]' isn't defined for the type 'Object'. Try defining the operator '[]'.
print(_user.userLocation())
和 print(_user.location().runtimeType);
返回
location:
country: Eesti,
city: Tallinn,
flutter: _InternalLinkedHashMap<String, dynamic>
我尝试将变量设置为var a = _user.location()['location']
,然后设置为a['city']
。但是,这并不奏效。
【问题讨论】:
请检查我添加的答案 【参考方案1】:你应该这样尝试,
var a = _user.userLocation() as Map;
print(a['location]['city']);
我这里的问题是 dart 的 type inference
无法自动识别类型。所以它给出了错误。但是上面的解决方案应该可以工作
【讨论】:
有什么方法可以从一开始就设置as Map;
?我正在使用Get和final UserInfoController _userInfoController = Get.find();
,如果可能的话,我想在顶部导入它们时说明它。以上是关于Flutter:没有为“Object”类型定义运算符“[]”。尝试定义运算符'[]'的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - 错误:没有为“对象”类型定义吸气剂“文档”
没有为“对象”类型定义运算符“[]”。尝试定义运算符'[]'
Flutter Firestore:未为类“Object?”定义运算符“[]”。 - “对象”来自“飞镖:核心”