Reactjs 在onChange事件上组合两个不同但非常相似的函数
我有两个非常相似的下拉列表,都有一个“onChange”事件:Reactjs 在onChange事件上组合两个不同但非常相似的函数,reactjs,Reactjs,我有两个非常相似的下拉列表,都有一个“onChange”事件: <Dropdown items={employeeNames} selection={employeeNames.name} onChange={this.handleEmployeeNamesChange} /> <Dropdown items={employeeTypes} selection={employeeType.nam
<Dropdown
items={employeeNames}
selection={employeeNames.name}
onChange={this.handleEmployeeNamesChange}
/>
<Dropdown
items={employeeTypes}
selection={employeeType.name}
onChange={this.handleEmployeeTypeChange}
/>
由您创建一个方法来组合您的更改并传递参数 最终目标是更新您的
状态的右侧键
,将此键用作参数
<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)
})
};
this.handleChangeDropdown(“employeeNames”,v)}
/>
此.handleChange下拉列表(“employeeTypes”,v)}
/>
handleChangeDropdown=(键,newVal)=>{
这是我的国家({
[钥匙]:纽瓦尔,
isValid:getValidation(newState)
})
};
您可以创建一种方法来组合更改并传递参数
最终目标是更新您的状态的右侧键
,将此键用作参数
<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)
})
};
this.handleChangeDropdown(“employeeNames”,v)}
/>
此.handleChange下拉列表(“employeeTypes”,v)}
/>
handleChangeDropdown=(键,newVal)=>{
这是我的国家({
[钥匙]:纽瓦尔,
isValid:getValidation(newState)
})
};
您可以创建一个工厂方法,为您想要的每个更改处理程序创建函数
handleGenericChange=changedProperty=>newVal=>{
const newState={…this.state,[changedProperty]:newVal};
this.setState({…newState,isValid:getValidation(newState)});
}
handleEmployeeNameChange=handleGenericChange('employeeNames'))
handleEmployeeTypeChange=handleGenericChange('employeeTypes')
您可以创建一个工厂方法,为您想要的每个更改处理程序创建函数
handleGenericChange=changedProperty=>newVal=>{
const newState={…this.state,[changedProperty]:newVal};
this.setState({…newState,isValid:getValidation(newState)});
}
handleEmployeeNameChange=handleGenericChange('employeeNames'))
handleEmployeeTypeChange=handleGenericChange('employeeTypes')
听起来像是一个代码审查问题。是的,有:
handleEmployeeChange = category => newVal => {
const newState = { ...this.state, [category]: newVal };
this.setState({ ...newState, isValid: getValidation(newState) });
};
为arrow函数设置第二个参数,允许对其进行预配置以供以后使用:
<Dropdown
items={employeeNames}
selection={employeeNames.name}
onChange={this.handleEmployeeChange('employeeNames')}
/>
<Dropdown
items={employeeTypes}
selection={employeeType.name}
onChange={this.handleEmployeeChange('employeeTypes')}
/>
听起来像是一个代码审查问题。是的,有:
handleEmployeeChange = category => newVal => {
const newState = { ...this.state, [category]: newVal };
this.setState({ ...newState, isValid: getValidation(newState) });
};
为arrow函数设置第二个参数,允许对其进行预配置以供以后使用:
<Dropdown
items={employeeNames}
selection={employeeNames.name}
onChange={this.handleEmployeeChange('employeeNames')}
/>
<Dropdown
items={employeeTypes}
selection={employeeType.name}
onChange={this.handleEmployeeChange('employeeTypes')}
/>
更改时使用箭头功能,并添加要更改的状态名称
<Dropdown
items={employeeNames}
selection={employeeNames.name}
onChange={(v) => this.handleEmployeeChange('employeeNames', v)}
/>
<Dropdown
items={employeeTypes}
selection={employeeType.name}
onChange={(v) => this.handleEmployeeChange('employeeTypes', v)}
/>
更改时使用箭头功能,并添加要更改的状态名称
<Dropdown
items={employeeNames}
selection={employeeNames.name}
onChange={(v) => this.handleEmployeeChange('employeeNames', v)}
/>
<Dropdown
items={employeeTypes}
selection={employeeType.name}
onChange={(v) => this.handleEmployeeChange('employeeTypes', v)}
/>
您可以这样做:
<Dropdown
items={employeeNames}
selection={employeeNames.name}
onChange={this.handleEmployeeChange.bind(this, "name")}
/>
<Dropdown
items={employeeTypes}
selection={employeeType.name}
onChange={this.handleEmployeeChange.bind(this, "type")}
/>
您可以这样做:
<Dropdown
items={employeeNames}
selection={employeeNames.name}
onChange={this.handleEmployeeChange.bind(this, "name")}
/>
<Dropdown
items={employeeTypes}
selection={employeeType.name}
onChange={this.handleEmployeeChange.bind(this, "type")}
/>
声明一个函数,当您在onClick pass上调用它时,让我们说“name”,然后键入另一个函数,并在您声明和设置状态的地方检查它。声明一个函数,当您在onClick pass上调用它时,让我们说“name”然后输入另一个,在你声明并设置状态的地方检查。同一时间,同一个答案,我保留我的,用不同语法写的,同一时间,我保留我的,用不同语法写的