当我执行 console.log(response.data) 时,它返回了 2 个数据集,即 post 和 user:
const [dbdata,setDBData] = useState([])
useEffect(async() => {
const response = await Axios.get('http://localhost:5000/api/posts/allpost', {withCredentials:true})
setDBData(response.data)
console.log(response.data)
}, [])
{post: Array(2), user: Array(1)}
post: (2) [{…}, {…}]
user: [{…}]
所以当我尝试 dbdata.post.map() 时,它说 map() 不是函数。我在这里缺少什么?非常感谢并非常感谢。
最佳答案
问题
初始状态是一个空数组[]
const [dbdata,setDBData] = useState([]);
因此,如果您尝试在初始渲染上渲染和映射它们,则 dbdata.post
和/或 dbdata.user
都是未定义的。
dbdata.post.map(...) // <-- throws error since dbdata.post undefined
解决方案
提供正确的初始状态,以便初始渲染具有可访问和映射的有效状态。
const [dbdata,setDBData] = useState({ post: [], user: [] });
关于reactjs - map 不是reactJS 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65105052/