在使用 antd 的Cascader 组件时,参照官网示例使用了它的 onChange 事件并传递定义的方法,然后提示了类型检查错误
interface resourceTreeItem {
label: string
value: string
tag?: string
children?: resourceTreeItem[]
}
// 资源树
const [resourceTree, setResourceTree] =
useState<Array<Resource.resourceTreeItem>>()
// 联级选择
const cascaderChange = (value: string[]) => {
console.log(value)
setCascaderValue(value)
}
<Cascader
options={resourceTree}
className="common-width"
value={cascaderValue}
onChange={cascaderChange}
/>
onChange 就提示下面这个类型错误
(property) onChange: (value: string[]) => void
不能将类型“(value: string[]) => void”分配给类型“OnSingleChange<DefaultOptionType> | OnMultipleChange<DefaultOptionType> | undefined”。
不能将类型“(value: string[]) => void”分配给类型“OnSingleChange<DefaultOptionType>”。
参数“value”和“value” 的类型不兼容。
不能将类型“SingleValueType”分配给类型“string[]”。
不能将类型“string | number”分配给类型“string”。
不能将类型“number”分配给类型“string”。ts(2322)
Cascader.d.ts(70, 5): 所需类型来自属性 "onChange",在此处的 "IntrinsicAttributes & (PropsWithChildren> & { ref?: Ref | undefined; })" 类型上声明该属性
我试着给 value 类型改成 string[] | number[] (如下),但是不行;
// 联级选择
const cascaderChange = (value: string[] | number[]) => {
console.log(value)
setCascaderValue(value)
}
我也尝试引入提示的这个类型便无法,但是找不到 OnSingleChange ,便没有处理下去
如果直接给 any 类型是可以解决,但是我想在不使用 any 类型下去解决这个问题,但是一直无法成功解决。希望有人能帮忙解决一下。