在下面的示例中,从 Firebase 取消映射 json。Map<String, dynamic>
无论我在哪里获取数据,orderId
都可以。但凡是我在另一张地图中放置地图的地方 - 就像address
- 它都会给我一个警告
“避免对“动态”目标进行方法调用或属性访问。”
这并不重要,但我在谷歌上发现它会导致生产力下降。有人可以分享为什么会这样以及如何避免它
Order.fromMap(Map<String, dynamic> data) {
orderId = data['orderId'] as int;
address = data['location']['address'].toString();
}
Run Code Online (Sandbox Code Playgroud)
首先,我认为值得注意的是,所提到的大小和运行时间损失通常不是一个问题,它们可能是不明显的。
对此最好的解决办法就是显式地转换你的值:
address = (data['location'] as Map<String, dynamic>)['address'].toString();
Run Code Online (Sandbox Code Playgroud)
我不确定以上内容是否足够,或者您是否还必须进行转换address
:
address = ((data['location'] as Map<String, dynamic>)['address'] as Object).toString()
Run Code Online (Sandbox Code Playgroud)
性能/大小问题来自应用程序确定是否data['location']
是地图所需的时间。通过添加as
,您是在告诉它不要检查并且不要担心。
归档时间: |
|
查看次数: |
4780 次 |
最近记录: |