我有 FileUpload
组件,它接受函数以便在其中创建一个功能组件。当我尝试使用它时,Typescript 抱怨 onOpen
作为参数传递给该函数。
绑定元素“onOpen”隐式具有“任何”类型。
<FileUpload onChange={onFileSelect}>
{({ onOpen }) => ( //<------- Error
<Button onClick={() => onOpen()}>
Upload image
</Button>
)}
</FileUpload>
我尝试了很多选项来给它一个 () => void;
或类似的类型,但我就是想不通......你能指出我正确的方向吗?
答案 0 :(得分:0)
你可以像这样重构你的代码。这样你就声明了一个定义回调参数结构的接口
interface FileUploadCallbackProps {
onOpen: () => void;
}
<FileUpload onChange={onFileSelect}>
{(props: FileUploadCallbackProps) => (
<Button onClick={() => props.onOpen()}>Upload image</Button>
)}
</FileUpload>;