在 React / Typescript 中上传文件 -> 属性 'click' 在类型 'never' 上不存在
upload File in React / Typescript -> Property 'click' does not exist on type 'never'
我正在尝试在 React / Typescript 中上传文件。
const CSVImport = () => {
const { isOpen, onOpen, onClose } = useDisclosure();
const inputFile = useRef(null);
const onButtonClick = () => {
// `current` points to the mounted file input element
inputFile.current && inputFile.current.click();
};
return (
<>
<Button onClick={onButtonClick}>import CSV</Button>
<input
type="file"
id="file"
ref={inputFile}
style={{ display: "none" }}
/>
</>
);
};
问题是,inputFile.current.click() 有问题 -> 这是错误:
Property 'click' does not exist on type 'never'.
我需要在哪里设置类型?
非常感谢!!
也许您可以将类型传递给 useRef
:
const inputFile = useRef<HTMLInputElement>(null);
这里解释了为什么会出现错误。
您应该定义引用的元素类型。由于您使用的是 input
,请在 useRef
中输入 HTMLInputElement。像这样 const inputFile = useRef<HTMLInputElement>(null);
.
我正在尝试在 React / Typescript 中上传文件。
const CSVImport = () => {
const { isOpen, onOpen, onClose } = useDisclosure();
const inputFile = useRef(null);
const onButtonClick = () => {
// `current` points to the mounted file input element
inputFile.current && inputFile.current.click();
};
return (
<>
<Button onClick={onButtonClick}>import CSV</Button>
<input
type="file"
id="file"
ref={inputFile}
style={{ display: "none" }}
/>
</>
);
};
问题是,inputFile.current.click() 有问题 -> 这是错误:
Property 'click' does not exist on type 'never'.
我需要在哪里设置类型?
非常感谢!!
也许您可以将类型传递给 useRef
:
const inputFile = useRef<HTMLInputElement>(null);
这里
您应该定义引用的元素类型。由于您使用的是 input
,请在 useRef
中输入 HTMLInputElement。像这样 const inputFile = useRef<HTMLInputElement>(null);
.