reactjs - 如何使用 Material UI 动态创建选择和状态?
问题描述
我需要根据我拥有的选择列表创建选择组件,例如:
列表-> item1,item2
组件:
<Select
value={this.state."NAME OF THE ITEM ON THE LIST"}
onChange={this.handleChange}
<MenuItem value={X} key={X} > Something </MenuItem> (the MenuItem part is working)
</Select>
由于select component
需要一个值并且我需要该值是 a state
,因此当它被单击时,它将调用该方法handleChange
并像这样更新状态:
handleChange = (event) => {
this.setState({
"THE NAME OF THE ITEM ": event.target.value(this comes from the MenuItem)
});
};
如何state
动态创建,所以如果我有一个带有 X 的列表,它将创建要更新的Xselects
和 X ?states
解决方案
您可以使用您所在州的数组属性来管理这些项目
state = {
items: []
}
然后,当您动态添加选择时,您必须在此数组中添加一个新值
addItem = () => {
this.setState({
items: [
...this.state.items, // previous items
{ value: ""} // plus the new one
]
});
};
最后,当你渲染一个 Select
<Select
value={this.state.items[index].value
onChange={event => {
this.setState({ // map over the array to modify the matching item
items: this.state.items.map(
(item, idx) =>
idx === index ? {...item, value: event.target.value} : item
)
});
}}>
推荐阅读
- docker - 简单的詹金斯码头工人管道构建
- docker - 如何使用 docker-compose 正确运行数据库(rethinkdb)?
- python - 如何在 Odoo 10 的搜索视图域中模拟“self.env.ref”?
- javascript - React Context API Consumer 块内的调试器 - 这是未定义的
- c - Windows API 验证码获取根证书
- tkinter - 如何使用 PIL 库在 tkinter 画布中创建多边形
- r - 将级别列添加到具有因子列的数据框
- blockchain - 在基于 pbft 的区块链中可以省略准备阶段吗?
- javascript - 如何从 Web 服务中调用 Web 服务
- javascript - 将属性从子级复制到父级?