通过数据进行JSX映射,有时会丢失数据字段

时间:2018-05-12 08:57:34

标签: reactjs jsx

我循环数据 这是react.js / jsx 如果我要拉100个项目,则没有一个会因为一个未定义而显示。我只是希望它显示为“0”,如果它是未定义的,并显示它是否存在大小。

错误:无法读取未定义的属性大小。

数据示例

Item={
    color:blue,
    size:medium,
    }
Item={
    color:red
    }

我正在通过数据进行映射。

我基本上是这样做的:

 return items.map((item, i) => {
    return( {item.size})

我也试过{item.size? “itWorks”:“0”}作为测试,我得到同样的错误。

3 个答案:

答案 0 :(得分:1)

错误是:

  

错误:无法读取未定义的属性大小

这意味着itemundefined, 因此,您必须检查itemitem.size

答案 1 :(得分:1)

最好使用object.hasOwnProperty('property')检查您的对象是否具有特定属性。对于你的情况是:

{item.hasOwnProperty('size') ? "itWorks" : "0"} 

答案 2 :(得分:1)

你应该这样做,

return (

items&& items.map(function(item,id){ .....}))

因此当items数组有一定长度时循环会通过,否则它会退出