reactjs - map 不是reactJS 中的函数

标签 reactjs

当我执行 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/

相关文章:

javascript - 从外部 Redux Form v6.0.0 提交按钮

reactjs - 如何将 Pug 与 React 结合使用?

javascript - 是否有语法上更好的方法来恢复构造函数状态?

javascript - 如何从 ReactJS 中的文件夹导入所有图像?

javascript - 为什么更新的状态没有反射(reflect)在事件监听器中 : React Native, Hooks

javascript - 无法使用 jQuery 和 React.js 加载 data.json 文件

reactjs - Ant Design Popconfirm 确认 [ENTER]?

javascript - 如何使用 react js 添加平滑滚动返回顶部按钮?

reactjs - React JS index.js 文件如何联系 index.html 获取 id 引用?

reactjs - 使用 Jest 模拟 React 组件的依赖