簡體   English   中英

React獲取另一個對象內的對象

[英]React get object inside another object

我有一個簡單的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>
)}

如果我嘗試使用{item.attributes.title}我會收到

TypeError: Cannot read property 'title' of undefined

因此item.attributes是未定義的。

怎么了

這應該對您有幫助。 我在您的程序中找不到錯誤。 因此,我創建了一個有效的示例來解決此問題。

 const data = { "data": [{ id: "1", type: "Item", attributes: { title: "lorem impsum", body: "lorem ipsum", } }, { id: "1", type: "Item", attributes: { title: "lorem impsum", body: "lorem ipsum", } }, { id: "1", type: "Item", attributes: { title: "lorem impsum", body: "lorem ipsum", } }, { id: "1", type: "Item", attributes: { title: "lorem impsum", body: "lorem ipsum", } }] } class Sample extends React.Component{ render() { return <div> { data.data.map((el) => { return <div> <h1>{el.id}</h1> <div>{el.attributes.title}</div> <div>{el.attributes.body}</div> </div> }) } </div> } } ReactDOM.render(<Sample/>, document.getElementById('app')) 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> <div id="app"></div> 

這是最常見的錯誤,因為您永遠不知道將從服務器獲取什么對象,因此,這始終是在訪問數據之前進行檢查的好方法,因此您可以嘗試

{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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM