2 回答
TA贡献1963条经验 获得超6个赞
奇怪的是这不起作用...
你可以试试find
。它将返回您要查找的对象:
{Object.values(articles).find(a => a.id==36).title || 'fallback if article is not found'}
TA贡献1775条经验 获得超8个赞
这是因为当您使用第一个索引 [0] 调用时,您会访问数组中存在的第一个对象并尝试渲染它。但是你不能直接在 React 中渲染一个对象。
所以我想你在你的组件的渲染方法中。
render () {
const filteredObjects = Object.values(articles).filter( article => article.id === 36)
return filteredObjects.map( article => {
<div>
<h1> {article.title} </h1>
</div>
})
}
但据我了解,您只想获得一个id值为 36 的对象。所以也许您可以考虑改用.find()方法。
const findObjectId = Object.values(articles).find( article => article.id === 36)
当然你可以这样写:
{ Object.values(articles).find( article => article.id === 36).title || ‘ No object found with this id ‘ }
使用 find() 不会返回数组,而是返回谓词对应的第一个对象。
我想您的输入是对象的对象,但如果我错了,请随时给我您的输入结构,以便我可以根据您的需要调整我的答案。
添加回答
举报