我有一个材料UI卡列表,每个卡内都有一个“选择”列表。

  const ads = this.props.ads;
  let adsItems = ads.map((c, i) =>
     <div key={ads[i].adid}>
      <Card>
        <CardHeade>
          <SelectField
            id={String(ads[i].adid)}
            value={ads[i].status}
            onChange={this.handleChange}>
              <MenuItem key={1} value={`Idle`} primaryText={`Idle`} />
              <MenuItem key={2} value={`Sent`} primaryText {`Sent`} />
          </SelectField>
        </CardHeader>
      </Card>
     </div>
  );


现在,当选择一个MenuItem时,我想知道更改了哪个CardselectField。如果在这种情况下,我可以简单地将SelectField id传递到onChange={this.handleChange}中,则该id为ads[i].adid即可解决。

我看了一下Material UI文档,甚至当选择一个MenuItem时,它们的示例也都显示出来,所有SelectField都使用相同的值进行更新。

我有什么办法可以知道要更改哪个CardSelectField,那将对我有很大帮助。

谢谢

最佳答案

您可以像上面所说的那样简单地传递id来更改事件。

onChange={(event) => this.handleChange(event, ads[i].adid)}


如果您喜欢下面这样,它将无法正常工作,因为您将执行它而不是将其作为道具传递。

// THIS WON'T WORK
onChange={this.handleChange(ads[i].adid)}

10-05 20:49
查看更多