我尝试在mui v4自动完成组件上使用React.ChangeEvent,因为我不想使用任何。然而,它却抛出了一个错误,即当前事件不兼容。
const handle = (e: React.ChangeEvent<HTMLTextAreaElement>, currentValue: string, reason: string) => {
console.log(e,currentValue,reason)
}
<Autocomplete onInputChange={handle}/>
2条答案
按热度按时间wd2eg0qa1#
您可以使用TypeScript的inference功能沿着一些type utilities来派生您所询问的函数签名。
下面是一个在处理函数上使用类型注解的示例:
TSPlayground
请注意,
Autocomplete
组件函数是泛型的,但是在我的测试中,所提供的泛型类型中的任何变化似乎都不会影响用于内部ChangeEvent
参数的泛型类型,结果总是ChangeEvent<{}>
。ChangeEvent
(来自React)的类型是ChangeEvent<T = Element>
,因此如果您要将目标定位到特定元素,则可以使用上面的信息手动编写自己的兼容函数签名,但要使用最适合您的场景的特定元素类型。tct7dpnv2#
签名:
function(event: object, value: string, reason: string) => void
"input"
(使用者输入)、"reset"
(程式变更)、"clear"
。MUI documentation for Autocomplete API