如何判断哪些卡或SelectField正在更改

时间:2017-09-30 22:59:24

标签: javascript reactjs material-design material-ui

我有一张材质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时,所有SelectFields都会使用相同的值进行更新。

我有什么方法可以知道哪些CardSelectField正在改变,这对我有很大帮助。

谢谢

1 个答案:

答案 0 :(得分:2)

你可以像你说的那样简单地传递id来改变事件。

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

如果你喜欢下面的话,它就不会工作,因为你会执行它而不是把它作为道具传递。

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