reactjs - 用不同的键映射一个 React 组件
问题描述
我想加载组件,但它显示了一个问题,即具有相同键的组件但我映射到 selectedGroups 并将 gr.id 作为它在第一个版本之前工作的键
sharingTabs = selectedGroups.map(gr => (
<ExpansionPanel>
<ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>
<Typography className={classes.heading}>{gr.name}</Typography>
</ExpansionPanelSummary>
<ExpansionPanelDetails>
<Grid container spacing={16}>
<Grid item xs>
<SharingSpacesTabs />
</Grid>
</Grid>
</ExpansionPanelDetails>
</ExpansionPanel>
));
但是后来我想在道具中发送索引,这就是为什么我在地图中添加了另一个地图,这就是导致回调函数问题的原因,我添加了 return
sharingTabs = selectedGroups.map(function(gr) {
const indexs = groups.map((group, index) => {
if ((group.sharingspace.element = gr.id)) {
return index;
}
});
return (
<ExpansionPanel key={gr.id}>
<ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>
<Typography className={classes.heading}>{gr.name}</Typography>
</ExpansionPanelSummary>
<ExpansionPanelDetails>
<Grid container spacing={16}>
<Grid item xs>
<SharingSpacesTabs id={gr.id} index={indexs[0]} />
</Grid>
</Grid>
</ExpansionPanelDetails>
</ExpansionPanel>
);
});
你能帮我找到我需要的解决方案吗,谢谢
解决方案
我认为您的情况有问题,请更改您的功能条件以正确检查 == 或 === 的相等性。
另外我不确定如果条件不满足你想做什么,map 将为每个不满足条件的元素返回 null。
const indexs = groups.map((group, index) => {
if ((group.sharingspace.element == gr.id)) {
return index;
}
});
推荐阅读
- nim-lang - 如何通过索引从 Nim 中的 OrderedTable 获取元素?
- r - 从 R 中的现有数据框构建新数据框
- flutter - 如何在 Flutter 中大写文本
- node.js - 使用sails 1、nginx和node的反向代理非常依赖版本,如何修复?
- swift - 如何在swift中激活具有一系列数字的if语句
- d3.js - 如何将此 d3 v3 图转换为 v4?
- python - Python - 使用子进程读取 Powershell 脚本输出,希望逐行接收标准输出
- android - Android 如何防止多次调用handler.postDelayed?
- snowflake-cloud-data-platform - 如何在雪花数据库中安排每日 sql 脚本
- mysql - 如何获得 n SELECTS 的交集?