我正在尝试将 onChange 事件处理程序添加到material-ui 中的 Select 组件:
<Select
labelId="demo-simple-select-label"
id="demo-simple-select"
value={values.country}
onChange={handleCountryChange}
>
{countries.map(c => {
return (
<MenuItem value={c}>{c}</MenuItem>
)
})}
</Select>
和我的事件处理程序:
const handleCountryChange = (event: React.ChangeEvent<HTMLSelectElement>) => {
setValues({...values, country: event.target.value});
};
但我收到以下错误:
Type '(event: ChangeEvent) => void' is not assignable to type '(event: ChangeEvent<{ name?: string | undefined; value: unknown; }>, child: ReactNode) => void'.
出了什么问题?
最佳答案
由于 MUI Select 不是真正的选择元素,因此您需要强制转换 e.target.value
使用as Type
并将处理程序键入 React.ChangeEvent<{ value: unknown }>
const handleCountryChange = (event: React.ChangeEvent<{ value: unknown }>) => {
setValues({...values, country: event.target.value as string});
};
关于javascript - Typescript React <Select> onChange 处理程序类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58675993/