簡體   English   中英

ReactJs:如何 map 和 object

[英]ReactJs: How to map an object

我從 API 獲取用戶信息時獲取數據(對象)。 很像,

{
    "id":"1111",
    "name":"abcd",
    "xyz":[
        {
            "a":"a",
            "b":"b",
            "c":"c"
        },
        {
            "a":"e",
            "b":"f",
            "c":"g"
        }
    ],
    "email":"abc@xyz.com",
    "phone":"0123456789"
}

在這里,我使用useState掛鈎存儲(JSON 響應)數據。 現在我可以通過輸入 data.id 或 data.name 輕松訪問任何索引,但問題是如果我像這樣的 map data.xyz

(data.xyz).map((xyz,index) => (//something)

它說,

TypeError: Cannot read property 'map' of undefined

我使用Object.keys(data.xyz).map因為這是一個 object 但不起作用。 如何訪問/循環通過 xyz 索引?

如何初始化數據? 當您獲取到 API 時,這是一個異步事件,因此可能在第一次渲染中 data.xyz 未定義。 也許你可以這樣做:

const [data, setData] = useState({ xyz: [] });

 let data = { id: "1111", name: "abcd", xyz: [ { a: "a", b: "b", c: "c", }, { a: "e", b: "f", c: "g", }, ], email: "abc@xyz.com", phone: "0123456789", }; let xyz = data.xyz.map((xyz, index) => { console.log(xyz); return xyz; }); console.log("XYZ ==>", xyz);

讓我猜你定義的數據如下:

class SomeClass {
  data: {
    "id":"1111",
    "name":"abcd",
    "xyz":[
        {
            "a":"a",
            "b":"b",
            "c":"c"
        },
        {
            "a":"e",
            "b":"f",
            "c":"g"
        }
    ],
    "email":"abc@xyz.com",
    "phone":"0123456789"
  }
}

而不是這樣做:

class SomeClass {
  data = {
    "id":"1111",
    "name":"abcd",
    "xyz":[
        {
            "a":"a",
            "b":"b",
            "c":"c"
        },
        {
            "a":"e",
            "b":"f",
            "c":"g"
        }
    ],
    "email":"abc@xyz.com",
    "phone":"0123456789"
  }
}

暫無
暫無

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

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