首页 > 解决方案 > 数组未在反应 js 中映射

问题描述

当我根据我的知识尝试了所有方法时,我不断收到此错误,任何形式的帮助都将不胜感激。

我尝试在 props 中传递数组,然后进入组件并在 state 中设置 props 值,但是当我尝试映射该数组时,会出现此错误:

TypeError: Cannot read property 'map' of undefined

点击功能:

const handleClickOpen = (data) => {
  setOpen(true);
  setPropsData(data);
};

事件处理程序:

onClick={() => {
  handleClickOpen({
    name: item.firstName,
    image: item.image,
    about: item.about,
    id: item._id,
    interests: item.intersets,
  });
}}

组件传递道具:

<ProfileDialog
  selectedValue={propsData}
  open={open}
  onClose={handleClose}
/>

组件声明 props 如下:

const { onClose, selectedValue, interests, open } = props;

当我输入这个语句时,我得到了错误:

<div>{selectedValue.interests.map((item,i) => console.log(item,i))}</div>

标签: javascriptarraysreactjs

解决方案


直到您设置该值interests是未定义的。访问前做空检查。

selectedValue?.interests?.map

建议null在访问嵌套对象之前进行检查,可选链接将在这方面帮助我们。


推荐阅读