【发布时间】:2021-01-26 05:14:38
【问题描述】:
我正在我的 react web-app 中构建一个 csv 文件上传组件。为此,我编写了一个这样的功能组件。有两个输入字段。 (1) type = file 和 (2) type = 'submit'。我想使用file 类型输入上传文件,然后当用户单击submit 类型按钮时,我想对输入类型为file 的files 对象做一些事情。
我这样做如下
import React from 'react';
function CSVUpload() {
const [handleUpload] = useHandleUpload();
const ref = React.createRef();
return(
<div className='CSV-upload'>
<input ref={ref} type='file' id='input-csv-upload' multiple/>
<input type='submit' value='Upload file' onClick={() => handleUpload(ref)}/>
</div>
)
}
function useHandleUpload(){
const handleUpload = (ref) => {
const files = ref.current.files;
console.log(files);
}
return [handleUpload];
}
export default CSVUpload;
如您所见,我使用 hooks 和 refs 来实现这一点。我可以看到这按预期工作,但我不确定这是否是正确和推荐的方式来使用这样的 refs。我有点困惑,因为我没有使用文档中提到的 forwardRef 之类的东西。我只是创建了一个简单的 react ref,使用 HTML 属性将它附加到我的输入,然后在我的 onClick 处理程序中访问它。
我只是想确保这不会在未来造成任何问题。一点反馈会很棒。提前致谢。
【问题讨论】:
标签: reactjs