当我尝试遍历对象并返回子组件时,我得到了一个奇怪的错误。
这是我尝试执行的代码:
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只是一个普通的对象,里面有一些字段。 有人可以看一下我的代码并告诉我哪里出了问题吗? 遍历数组和对象之间有什么区别吗?
答案 0 :(得分:3)
您只声明了var listItem;
,并且没有为其分配任何内容,因此它在第一次迭代时的值为undefined
。
要解决此问题,请将声明更改为:
var listItem = [];