map 不是 reactJS 中的函数

IT技术 reactjs
2021-05-15 02:40:32

当我执行 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() 不是函数。我在这里缺少什么?非常感谢,非常感谢。

1个回答

问题

初始状态是一个空数组 []

const [dbdata,setDBData] = useState([]);

如果您尝试在初始渲染上渲染和映射它们,那么dbdata.post和/或dbdata.user两者都是未定义的。

dbdata.post.map(...) // <-- throws error since dbdata.post undefined

解决方案

提供正确的初始状态,以便初始渲染具有可访问和映射的有效状态。

const [dbdata,setDBData] = useState({ post: [], user: [] });