gpt4 book ai didi

javascript - React TypeError : skills. 映射不是函数

转载 作者:行者123 更新时间:2023-11-30 13:52:04 24 4
gpt4 key购买 nike

我有一个对象skills,我想遍历它并映射它的内容。该对象看起来像这样:

{
"_id": {
"$oid":"5d85b311e180652980824193"
},
"date":{
"$date":{ "$numberLong":"1569043209148" }
},
"title": "test",
"image":"test image",
"description":"test desc",
"__v":{
"$numberInt":"0"
}
}

我正在使用 MongoDB我的映射如下所示:

    componentDidMount() {
this.props.fetchSkills();
}

render() {

const { skills } = this.props
let skillData

if (skills.length === 0) {

return (
<p>There are no skills to display</p>
)

} else {

skillData = skills.map(skill => (

<div key={skill._id}>
<div>
<img src={skill.image} alt="" />
</div>

<div>
<h2>{skill.title}</h2>
<div>
<span>{skill.date}</span>
</div>
<div>
<p>{skill.description}</p>
</div>
</div>
</div>

))
}

return (
<div>

{skillData}

</div>
)
}

但是,当我加载页面时出现此错误:

TypeError: skills.map is not a function

  26 |            )
27 | } else {
28 |
> 29 | skillData = skills.map(skill => (
30 | ^
31 | <div className="item" key={skill._id}>
32 |

我认为这是因为 .map 只能遍历数组,但我正在尝试遍历对象。

最佳答案

您需要有一个数组,以便能够使用函数.map() 遍历它

所以只需将您的对象转换为对象数组,如下所示:

[
{
"_id": {
"$oid":"5d85b311e180652980824193"
},
"date":{
"$date":{ "$numberLong":"1569043209148" }
},
"title": "test",
"image":"test image",
"description":"test desc",
"__v":{
"$numberInt":"0"
}
}
]

现在您将能够成功使用 .map()

关于javascript - React TypeError : skills. 映射不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58042479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com