【发布时间】:2020-04-07 10:59:15
【问题描述】:
我正在使用 Reactjs 和 MaterialIU v.3 (记住 v3 不是 v4),我正在尝试使用 [array].map 来实现一个表来构建它,并在TableCell 内渲染Select,期望为每个服务(午餐、小吃、交通)分别定义一个特定的百分比,但是当我更改任何人时,所选百分比会更改所有选择器。任何人都有实现该方法的想法。
代码和图片:
<Table className={classes.table}>
<TableHead>
<TableRow>
<TableCell>Code</TableCell>
<TableCell>Name</TableCell>
<TableCell>Value</TableCell>
<TableCell>Perc.</TableCell>
</TableRow>
</TableHead>
<TableBody>
{this.state.fees_details.map((item, key) => {
return (
<TableRow key={key}>
<TableCell>
{item.ItemCode}
</TableCell>
<TableCell>
{item.Dscription}
</TableCell>
<TableCell>
{item.Price}
</TableCell>
<TableCell>
<Select
value={this.state.percentControl}
onChange={this.selectItemOnChange}
inputProps={{
name: item.ItemCode,
id: item.ItemCode
}}>
<MenuItem value={0}>0%</MenuItem>
<MenuItem value={10}>10%</MenuItem>
<MenuItem value={20}>20%</MenuItem>
<MenuItem value={30}>30%</MenuItem>
<MenuItem value={40}>40%</MenuItem>
<MenuItem value={50}>50%</MenuItem>
<MenuItem value={60}>60%</MenuItem>
<MenuItem value={70}>70%</MenuItem>
<MenuItem value={80}>80%</MenuItem>
<MenuItem value={90}>90%</MenuItem>
<MenuItem value={100}>100%</MenuItem>
</Select>
</TableCell>
</TableRow>
) })}
</TableBody>
而我的函数selectItemOnChange定义是:
selectItemOnChange(e) {
console.log(e)
if (e.target.name === '0024') {
console.log(e.target.value)
this.setState({
percentControl: e.target.value
})
}
if (e.target.name === '0025') {
console.log(e.target.value)
this.setState({
percentControl: e.target.value
})
}
if (e.target.name === '0027') {
console.log(e.target.value)
this.setState({
percentControl: e.target.value
})
}
}
先谢谢你了。
【问题讨论】:
标签: javascript reactjs material-ui