【发布时间】:2019-09-05 22:44:50
【问题描述】:
我有以下代码,我试图循环遍历对象数组,但由于某种原因,它告诉我 data.map 不是一个函数,即使我知道数据中有内容。
function Tree({ data }) {
let count = 0;
return (
<>
{data.map(item => {
count += 1;
console.log("Item", item.name);
return (
<div key={count} className="node">
{/* {item.name} */}
</div>
);
})}
</>
);
}
export default Tree;
当我将其更改为 Object.entries 时,我得到了一些东西,但我过去不是这样做的,所以我对这里的问题有点困惑。
function Tree({ data }) {
let count = 0;
return (
<>
{Object.entries(data).map(item => {
count += 1;
console.log("Item", item.name);
return (
<div key={count} className="node">
{/* {item.name} */}
</div>
);
})}
</>
);
}
export default Tree;
数组对象的构造如下:
[
{
id: 0,
name: Brannon,
},
{
id: 1,
name: John,
}
]
【问题讨论】:
-
console.log/debug the data before you map 并准备好惊讶
data实际上不是一个数组,而是一个对象。 -
即使它包含在 [ ] 中?
-
你确定
data(总是)是一个数组吗?此外,从Object.entries生成的item永远不会有.name。 -
是的,因为我以与上述相同的格式创建它。
-
我现在更新了上面的代码,以更好地反映我所拥有的。
标签: javascript reactjs ecmascript-5