在React中使用for循环对象时出现有线错误

时间:2018-12-23 11:13:17

标签: javascript reactjs

当我尝试遍历对象并返回子组件时,我得到了一个奇怪的错误。

这是我尝试执行的代码:

 if(itemData){
      var listItem;
      for (var key in itemData) {
       let data = itemData[key]

        listItem = [...listItem, (<ListItem itemData= {data} />)];
       }
     console.log(listItem, 'list item');
    }

它说:

TypeError: Invalid attempt to spread non-iterable instance
 for (var key in itemData) {
  31 |    let data = itemData[key]
  32 |     
> 33 |     listItem = [...listItem, (<ListItem itemData= {data} />)];
     | ^  34 |    }
  35 |  console.log(listItem, 'list item');
  36 | }

Ps:itemData只是一个普通的对象,里面有一些字段。 有人可以看一下我的代码并告诉我哪里出了问题吗? 遍历数组和对象之间有什么区别吗?

1 个答案:

答案 0 :(得分:3)

您只声明了var listItem;,并且没有为其分配任何内容,因此它在第一次迭代时的值为undefined

要解决此问题,请将声明更改为:

var listItem = [];