Javascript 在另一个对象中获取对象
我得到了一个简单的json api,并希望用react显示一些对象字段。 api具有以下结构:Javascript 在另一个对象中获取对象,javascript,reactjs,Javascript,Reactjs,我得到了一个简单的json api,并希望用react显示一些对象字段。 api具有以下结构: {"data" : [ 0: Object id: "1" type: "Item" attributes: Object title: "lorem impsum" body: "lorem ipsum" 1: Object id: "2" .... ]} 我试图显示属性项(标题、正文) 问题是 这可以正常工作并显示id {item
{"data" : [
0: Object
id: "1"
type: "Item"
attributes: Object
title: "lorem impsum"
body: "lorem ipsum"
1: Object
id: "2"
....
]}
我试图显示属性项(标题、正文)
问题是
这可以正常工作并显示id
{items.map(item =>
<div>{item.id}</div>
)}
{items.map(item=>
{item.id}
)}
但是
如果我尝试使用{item.attributes.title}
我会收到
TypeError:无法读取未定义的属性“title”
因此,item.attributes
未定义
这里怎么了?这应该对你有帮助。我在你的程序中找不到错误。所以,我创建了一个工作示例来解决这个问题
const数据={
“数据”:[{
id:“1”,
类型:“项目”,
属性:{
标题:“奥勒姆·英普苏姆”,
正文:“lorem ipsum”,
}
}, {
id:“1”,
类型:“项目”,
属性:{
标题:“奥勒姆·英普苏姆”,
正文:“lorem ipsum”,
}
}, {
id:“1”,
类型:“项目”,
属性:{
标题:“奥勒姆·英普苏姆”,
正文:“lorem ipsum”,
}
}, {
id:“1”,
类型:“项目”,
属性:{
标题:“奥勒姆·英普苏姆”,
正文:“lorem ipsum”,
}
}]
}
类示例扩展了React.Component{
render(){
返回
{
data.data.map((el)=>{
返回
{el.id}
{el.attributes.title}
{el.attributes.body}
})
}
}
}
ReactDOM.render(,document.getElementById('app'))
这是最常见的错误,因为您永远不知道将从服务器获取什么对象,所以在访问数据之前进行检查总是一个好方法,所以您可以尝试一下
{item.attributes && item.attributes.title ? item.attributes.title : 'print something for missing title' }
//item.attributes && item.attributes.title means if both the values are present in Object
您确定每个项目都定义了
属性
字段吗?请尝试{item.attributes&&item.attributes.title}
并检查输出刚才注意到,一些属性字段的值为null
<代码>{item.attributes&&item.attributes.title}-这很有效。我想我明白了。谢谢