Reactjs 如何在React中的对象数组上使用map函数
在使用fetchAPI读取数据之后,由于数组的性质,我在显示内容时遇到了问题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
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)改为code>和userData.map(…)
。谢谢。请问,我怎样用手风琴演奏