【发布时间】:2021-12-09 07:22:25
【问题描述】:
问题:当props.files 被控制台记录时(查看下面的代码以了解它的记录位置),它第一次工作。但是,当我选择一组新文件时,它永远不会再次记录任何内容,除非我重新加载页面并重新开始。我在这里做错了什么?
我的代码信息:
我正在为以下自定义组件(即 Form.Group、Form.Label、Form.Control)使用React Bootstrap Form Components(滚动到“文件输入”)。为了清晰起见,代码被大大简化:
const UploadFile = (props) => {
// stuff here
console.log(props.files);
const filesFunction = (filesInput) {
// do stuff with filesInput
}
return {
<Form.Group controlId="formFileMultiple" className="mb-3">
<Form.Label> Files </Form.Label>
<Form.Control
type="file" multiple
onChange={props.handleFilesChange}
onChange={filesFunction(files)}
name="files"
key="files"
/>
</Form.Group>
}
在父级中,我有一个自定义 UploadFile 组件的实例,如下所示:
const [listOfFiles, setListOfFiles] = useState([]);
const handleFilesChange = (e) {
setListOfFiles(e.target.files);
}
<UploadFile
handleFilesChange = { e => handleFilesChange(e) }
files = {listOfFiles}
/>
【问题讨论】:
-
如果
handleFilesChange不起作用,您应该在问题中包含该代码。除了与问题实际相关的内容之外,您几乎向我们展示了所有内容。 -
handleFilesChange在代码中,但仅在父代码中!这可能是它不起作用的原因 -
@thomas,我将它包含在 onChange 中。它不会那样触发吗?
-
@Iwrestledabearonce。这就是我所拥有的handleFilesChanges。你还想看什么?
-
@penguin 它应该被触发,我不明白为什么它不应该......当你将控制台日志放在
handleFilesChange函数中时会发生什么?每次上传新文件时都会显示吗?
标签: javascript reactjs react-hooks onchange custom-component