为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用状态变量而不在循环内的不同组件之间共享

如何使用状态变量而不在循环内的不同组件之间共享

元芳怎么了 2021-06-10 21:11:00
我在循环中有两张卡片组件,如下面的代码所示。在卡片中,我有一个文本字段和一个添加按钮。单击添加按钮后,在文本字段中输入的值将填充在卡片内。但是当我这样做时,另一张卡也显示相同的值。这意味着,假设我在第一张卡片的文本字段中输入了一个值,那么第二张卡片中也会显示相同的值。我知道这是因为我在循环内使用相同的状态变量,并且在循环内的其他卡组件之间共享。我无法找到解决方案,因此如果我在卡片组件的文本字段中输入某些内容,则它不会反映在循环内的其他组件上。代码,我在循环中渲染卡片组件render() {    const { classes } = this.props;    let apidata = this.state.apidata;    return (      <div>        <br />        <br />        <div className={classes.root}>        <GridList cellHeight={600} cols={2} className={classes.gridList}>             {apidata.map((val,index) => (                                           <GridListTile className="gridtile" key={val.id}>                <Card className={classes.card} key={val.id} >                  <CardHeader                    title={val.username}                                      />                    <Typography className={classes.test}>                     <span>{this.state.img_comments}</span>                    </Typography>                    <TextField                      label="Add a comment"                      className={classes.textField}                      margin="normal"                      onChange={(e)=>this.commentHandler(e,index)}                      defaultValue=""                    />                    <Button                      variant="contained"                      color="primary"                      className={classes.button}                      onClick={this.putComment}                    >                      ADD                    </Button>                </Card>              </GridListTile>            ))}            </GridList>        </div>      </div>    );  }
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信