reactjs - Reactjs 切片和保留索引
问题描述
切片和映射时,我得到重叠索引 0,1。我如何在做同样的事情时保持相同的索引。我需要为 <TextField value={paymentField[index]} onChange={(e)=>{setPaymentFields(e,index)}} 获取正确的索引variant= “概述” className={classes.paymentTextField}/> 。
<Grid container xs={12} sm={12} md={12} lg={6} xl={6} className={classes.marginBottom}>
{paymentRows.slice(0,3).map((row,index) =>
<Grid key={index} item xs={12} className={classes.alignRow}>
<Typography className={classes.accordionCheckMarkFor+" "+classes.paymentRowBlock} >
{row}
</Typography>
{editable[1]?(
<TextField value={paymentField[index]} onChange={(e)=>{setPaymentFields(e,index)}} variant="outlined" className={classes.paymentTextField}/>
):(
<Typography className={classes.accordionCheckMarkFor+" "+classes.paymentTextField} >
{paymentField[index]}
</Typography>
)}
</Grid>
)}
</Grid>
<Grid container xs={12} sm={12} md={12} lg={6} xl={6} className={classes.marginBottom} >
{paymentRows.slice(3,5).map((row,index) =>
<Grid key={index} item xs={12} className={classes.alignRow}>
<Typography className={classes.accordionCheckMarkFor +" "+classes.paymentRowBlock} >
{row}
</Typography>
{editable[1]?(
<TextField value={paymentField[index]} onChange={(e)=>{setPaymentFields(e,index)}} variant="outlined" className={classes.paymentTextField}/>
):(
<Typography className={classes.accordionCheckMarkFor+" "+classes.paymentTextField} >
{paymentField[index]}
</Typography>
)}
</Grid>
)}
</Grid>
解决方案
slice
从0
每次开始返回一个新数组。尝试过滤您想要的项目map
,如下所示:
<Grid container xs={12} sm={12} md={12} lg={6} xl={6} className={classes.marginBottom}>
{
paymentRows.map((row, index) => {
return index <3 ? (<Grid key={index} item xs={12} className={classes.alignRow}>/*JSX*/</Grid>) : null
})
}
</Grid>
<Grid container xs={12} sm={12} md={12} lg={6} xl={6} className={classes.marginBottom} >
{
paymentRows.map((row, index) => {
return index >=3 ? (<Grid key={index} item xs={12} className={classes.alignRow}>/*JSX*/</Grid>) : null
})
}
</Grid>
另外,如果paymentRow
有一个 id,我建议使用它来key
代替索引。
推荐阅读
- python - BeautifulSoup:“发生异常:KeyError 'id'”使用带有 .find_all() 方法的函数时
- reactjs - 通过 map() 渲染多个组件时,componentDidMount 仅触发一次
- python - 在散景服务器应用程序中绘制多行流数据
- php - PHP isset 不适用于 $this 变量
- php - 是否可以使用 IntelliJ + PHP + Xdebug + WSL(Windows 上的 Ubuntu)?
- assembly - 打印偶数汇编语言 x86
- css - 如何更改字体样式?
- c# - 无法绑定视图模型属性 - 我自己的用户控件 (WPF)
- node.js - 使用 node-rfc 时出错:客户端调用 RFC 调用并关闭连接
- ios - 在 iOS 13 上隐藏导航栏分隔线