我有一个 Material 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
时,我想知道哪个 Card
或 selectField
已更改。如果我可以简单地将 SelectField
id 传递到 onChange={this.handleChange}
中,在本例中,id 为 ads[i].adid
这个问题很简单就能解决。
我查看了 Material UI 文档,甚至它们的示例显示,当您选择一个 MenuItem
时,所有 SelectField 都会更新为相同的值。
有什么方法可以知道哪个 Card
或 SelectField
正在更改,这对我有很大帮助。
谢谢
最佳答案
您可以像您所说的那样简单地传递 id 来更改事件。
onChange={(event) => this.handleChange(event, ads[i].adid)}
如果您确实像下面这样,它将不起作用,因为您将执行它而不是将其作为 Prop 传递。
// THIS WON'T WORK
onChange={this.handleChange(ads[i].adid)}
关于javascript - 如何判断哪个 Card 或 SelectField 正在更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46507797/