Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在另一个对象中获取对象_Javascript_Reactjs - Fatal编程技术网

Javascript 在另一个对象中获取对象

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

我得到了一个简单的json api,并希望用react显示一些对象字段。 api具有以下结构:

{"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}-这很有效。我想我明白了。谢谢