【发布时间】:2018-03-10 21:59:36
【问题描述】:
这段代码导致map is not a function的错误
{data && (data.devices || {}).map((obj, i) =>
<div>{obj.name}</div>
)}
我只是不明白,我已经做了data && 来检查数据是否已定义,否则请保留地图。还有data.devices || {} 检查设备属性是否存在。
我console.log(data.devices) 是返回未定义但它应该回退到一个对象,对吧?为什么还是坏掉?
【问题讨论】:
-
.map是数组上的函数,而不是对象上的函数。将其更改为data.devices || [] -
@NicholasTower 试过了,还是一样,上面写着
Cannot read property 'map' of undefined -
原来你说的错误是
map is not a function。您说更改后它“仍然相同”,但就是Cannot read property 'map' of undefined。您能否澄清错误是否已更改? -
问题是
data && (data.devices || {})或data && (data.devices || [])如果数据为空则返回空。这就是您收到Cannot read property 'map' of undefined的原因
标签: javascript reactjs ecmascript-6 jsx