【发布时间】:2021-06-01 18:21:13
【问题描述】:
设置状态后 reactJs 出现错误 blogs.map is not a function。 如何将博客转换为数组,尽管它被初始化为数组。
const [blogs,setBlogs] = useState([]);
useEffect(async() => {
await axios.get(`${API_URL}/api/getblogs`,{
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Access-Control-Allow-Origin': '*'
}
})
.then((res)=>{
res.data.result.forEach(element => {
element.blogArray.forEach((b)=>{
// console.log(b);
setBlogs(b);
})
});
})
.catch((err)=>{
console.log(err)
})
}, []);
useEffect(()=>{
console.log(blogs)
},[blogs]);
return(
<div className="row">
{
blogs &&
blogs.map((blog)=>{
return (
<Cardschema key={Math.random()}/>
)
})
}
</div>
)
【问题讨论】:
-
看起来你只是想做
setBlogs(res.data.result)。你为什么要循环它?每次 forEach 迭代时,您都会用一个单独的博客覆盖状态。
标签: arrays reactjs react-hooks use-state