Reactjs 如何在React中的对象数组上使用map函数

Reactjs 如何在React中的对象数组上使用map函数,reactjs,Reactjs,在使用fetchAPI读取数据之后,由于数组的性质,我在显示内容时遇到了问题 import React, { useState, useEffect } from "react"; function Home() { const [userData, setUserData] = useState([]); async function getData() { let response = await fetch("https://api.xxx

在使用fetchAPI读取数据之后,由于数组的性质,我在显示内容时遇到了问题

import React, { useState, useEffect } from "react";

function Home() {
  const [userData, setUserData] = useState([]);

  async function getData() {
    let response = await fetch("https://api.xxxxxxxx.io/something/students");
    let data = await response.json();
    return data;
  }

  //call getData function
  getData().then((data) => console.log(data)); //
  useEffect(() => {
    getData()
      .then((data) => {
        setUserData(data);
      })
      .catch((error) => {
        console.log(error);
      });
  }, []);

  return (
    <div>
      {Object.keys(userData).map((item, index) => (
        <div key={index}>{item}</div>
      ))}
    </div>
  );
}

export default Home;
import React,{useState,useffect}来自“React”;
函数Home(){
const[userData,setUserData]=useState([]);
异步函数getData(){
let response=等待获取(“https://api.xxxxxxxx.io/something/students");
让data=wait response.json();
返回数据;
}
//调用getData函数
getData()。然后((数据)=>console.log(数据))//
useffect(()=>{
getData()
。然后((数据)=>{
setUserData(数据);
})
.catch((错误)=>{
console.log(错误);
});
}, []);
返回(
{Object.keys(userData).map((项,索引)=>(
{item}
))}
);
}
导出默认主页;
当我检查控制台时,会显示数据,但它只显示学生,没有显示其他数据。 我有下面的数据


尝试以下更改:

const [userData, setUserData] = useState({ students: [] });

...

return (
    <div>
      {userData.students.map((item, index) => (
        <div key={index}>{item}</div>
      ))}
    </div>
  );
const[userData,setUserData]=useState({students:[]});
...
返回(
{userData.students.map((项目,索引)=>(
{item}
))}
);

嗯,
Object.keys(userData)
会把
[“学生”]
还给你。如果要显示所有学生对象,请执行
userData.students.map(student=>…)
并访问要显示的学生属性。为什么不从
useffect
中删除依赖项数组?为了承诺决议?没有依赖项的
useffect
无论如何都会在每次重新加载时运行。此外,您还可以
userData.students.map({email})=>{email}

编辑:删除依赖项数组,因为您在
useffect
之外调用
getData
函数也是正确的。请注意,这与React无关:这是关于正常JS的问题。但有一点需要注意:停止在div中生成div。即使使用JSX,结果仍然是HTML,语义标记很重要。将该映射放在一个内部,至少不是一个
。@FelixKling它在抱怨。。。“无法读取未定义的属性‘map’”可能是因为您的数据最初没有
students
属性。也许你想要
setUserData(data.students)
userData.map(…)
。谢谢。请问,我怎样用手风琴演奏