class Bills extends Component {
constructor(props) {
super(props)
this.state = {
productName: '',
price: 0,
quantity: 0,
noOfProductsField: 0
}
}
handleChange = name => event => {
this.setState({
[name]: event.target.value,
});
};
createFields = () => {
const { classes } = this.props;
let children = []
for (let i = 0; i < this.state.noOfProductsField; i++) {
children.push(
<div>
<Select
className={classes.textField}
value = { this.state[i] }
onChange={this.handleChange('productName')}
displayEmpty
SelectProps={{
MenuProps: {
className: classes.menu,
}
}}>
<MenuItem value="" disabled>
Select Product
</MenuItem>
{this.state.products.map((option, ind) => (
<MenuItem key={ind} value={option.productName}>
{option.productName}
</MenuItem>
))}
</Select>
<TextField className={classes.textField} placeholder='Price' type='number' onChange={this.handleChange('price')} />
<TextField className={classes.textField} placeholder='Quantity' type='number' onChange={this.handleChange('quantity')} />
</div>
)
}
return children
}
}
我有一个函数,它使用for循环创建了3个输入字段:
- productName(产品名称)
- price(价格)
- quantity(数量)
例如,如果循环运行2次,它将创建6个字段,如下图所示:
现在我想为这6个字段分别管理状态,如何做到?