reactjs - 在 onChange 事件中结合两个不同但非常相似的函数
问题描述
我有两个非常相似的下拉菜单,都有一个“onChange”事件:
<Dropdown
items={employeeNames}
selection={employeeNames.name}
onChange={this.handleEmployeeNamesChange}
/>
<Dropdown
items={employeeTypes}
selection={employeeType.name}
onChange={this.handleEmployeeTypeChange}
/>
有没有办法可以将这两个handleChange
功能组合成一个功能:
handleEmployeeNameChange = newVal => {
const newState = { ...this.state, employeeNames: newVal };
this.setState({ ...newState, isValid: getValidation(newState) });
};
handleEmployeeTypeChange= newVal => {
const newState = { ...this.state, employeeTypes: newVal };
this.setState({ ...newState, isValid: getValidation(newState) });
};
解决方案
您可以创建一个方法来组合您的更改并传递参数。
最终目标是更新key
您的权限state
,使用此键作为参数。
<Dropdown
items={employeeNames}
selection={employeeNames.name}
onChange={v => this.handleChangeDropdown("employeeNames",v)}
/>
<Dropdown
items={employeeTypes}
selection={employeeType.name}
onChange={v => this.handleChangeDropdown("employeeTypes",v)}
/>
handleChangeDropdown = (key,newVal) => {
this.setState({
[key]:newVal,
isValid: getValidation(newState)
})
};
推荐阅读
- javascript - 旋转和移动对象(跟随鼠标) - Javascript
- python - 获取当前目录下所有子目录的列表,忽略没有读取权限的目录
- gdprconsentform - 无法加载 Google 资金选择表单
- reactjs - 带有反应错误的 Highcharts:“missingModule”,图表类型为“时间线”
- python - 为我的 python 文本冒险清除终端
- hibernate - 使用 Wildfly/Hibernate java.sql.SQLException 在 JPA 中查询时遇到问题:未选择数据库
- php - Laravel 8.x 中的 JavaScript 和 CSS 脚手架
- python-3.x - 读取多个文本文件,搜索几个字符串,用 python 替换和写入
- git - Eclipse 在文件夹上显示箭头,但 git 存储库是干净的
- c - 多线程程序执行时间?