javascript - ReactJS:无法读取未定义的属性“映射”
问题描述
我有一个父组件,它获取数据并将其存储到 useState 中,然后将其作为道具传递给子组件。
当该子组件被渲染时,我将该道具数据存储到我尝试使用的 useState 中,然后使用 map 或 forEach 函数进行迭代,但我得到了cannot read property of undefined errors
在检查 React 开发工具时,存在从父级传递给子级的数组,所以我不太确定自己做错了什么。
父组件:
const DisplayOpenIncidents = () => {
const [data, setData] = useState([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
const incidents = FetchIncidents();
incidents.then((incidents) => {
setData(incidents);
setLoading(false);
});
}, []);
return (
<AccordionExample data={data} />
);
};
子组件:
const AccordionExample = (props) => {
const [test, setTest] = useState(props.data);
useEffect(() => {
console.log(props.data); // Displays array
setTest(props.data);
}, [props]);
return (
<Accordion defaultActiveKey="0">
<Card>
<Accordion.Toggle as={Card.Header} eventKey="0">
TITLE
</Accordion.Toggle>
<Accordion.Collapse eventKey="0">
<Card.Body>
{test.forEach((test) => {
console.log(test);
})}
</Card.Body>
</Accordion.Collapse>
</Card>
</Accordion>
);
};
TIA
解决方案
使用条件如下
<Accordion.Collapse eventKey="0">
<Card.Body>
{test && test.forEach((test) => {
console.log(test);
})}
</Card.Body>
</Accordion.Collapse>
推荐阅读
- google-cloud-dataflow - 看不到数据流数据管道详细信息
- arrays - How to use Image Literal in the latest Xcode version 13?
- ios - 从 hevc 视频帧创建正确 mp4 的问题
- python - 我的 python 代码在创建模式和更新外键时跳过 SQL 语句,请建议
- javascript - 传递 props 让 makeStyles 做出反应
- c# - .NET 5 Cookie 身份验证方案中未添加 Cookie
- javascript - 未处理的承诺拒绝。这个错误是由于在没有catch块的情况下抛出异步函数引起的,尽管我没有使用try,await
- r - 如何通过匹配字母和字符来提取文本?
- python-3.x - 在 gensim 中加载 pickle 文件
- python - 在 sympy 表达式中使用矩阵乘法运算符