自定义组件(Tab)onChange类型正在扩展

时间:2019-12-13 21:00:31

标签: reactjs typescript material-ui

参考代码沙盒(https://codesandbox.io/s/eager-volhard-qgr34

我为Tabs组件提供了一个自定义包装器。它所具有的只是一个withStyles HOC,它包装了自定义样式。所有道具均按原样通过。

通常我希望onChange类型保持不变 onChange?: (event: React.ChangeEvent<{}>, value: any) => void;

但是当使用组件并传递onChange道具时,出现以下错误

Type '(event: ChangeEvent<{}>, newValue: string) => void' is not assignable to type '((event: ChangeEvent<{}>, value: any) => void) & ((event: FormEvent<HTMLButtonElement>) => void)'

有关完整示例,请参见上面的codeandbox链接。 index.tsx是具有错误的自定义组件。 index2.tsx只是使用纯Tabs组件作为健全性检查。

用法是:

...
const [filterValue, setFilterValue] = React.useState('all')
function handleChangeFilter(event: React.ChangeEvent<{}>, newValue: string) {
    setFilterValue(newValue)
}

return (
    <FilterTabs value={filterValue} onChange={handleChange}>...</FilterTabs>
)

0 个答案:

没有答案