所以我的工作场所在一个组件内部使用SelectField,该组件在多个地方使用。说得通。现在,当我在当前正在使用的那个组件中使用该组件时。我创建的onChange事件没有传递正确完成所需的值。现在,如果我将SelectField更改为onChange = {onChange},它可以正常工作。但是,它不能以这种方式设置,因为app中的其他部分依赖于它。我是React的新手。这是我的功能
addHistory = (field) => (event, index, value, target) => {
const { history } = this.state;
console.log(this.state.history);
console.log(field);
if (field === 'employerName' || field === 'description') {
history[field] = event.target.value;
} else if (field === 'roles') {
history[field] = value;
} else {
history[field] = event.value;
}
this.setState({
history: this.state.history,
});
}
这是我正在导入和使用组件
的CompanySelectField <CompanySelectField
label={translations.translate('driverProperties', 'typeOfVehicle')}
hint={translations.translate('driverProfile', 'pleaseSelectRole')}
style={{ marginTop: '25px' }}
name={'roles'}
value={this.state.history.roles}
onChange={this.addHistory('roles')}
fullWidth
required
>
这是CompanySelectField本身
<SelectField
name={name}
maxHeight={300}
value={value}
onChange={(event, index, response) => onChange(response)}
disabled={disabled}
hintText={hint}
>
提前谢谢你。
答案 0 :(得分:1)
你从addHistory返回的方法有4个参数,即event, index, value, target
,而你从SelectField组件调用的那个,即onChange={(event, index, response) => onChange(response)}
,它只有一个参数,而且响应也不匹配用上面提到的返回方法的第一个参数。