在react-dropzone-uploader的onSubmit方法中访问道具

时间:2020-02-24 07:29:57

标签: javascript reactjs react-props react-state react-dropzone

我正在使用react-dropzone-uploader上传文件。一切正常除了我希望在单击“提交”按钮后更新父组件。我该怎么办?

这是我使用的代码的一部分:


export default () => {

  const handleSubmit = (files, allFiles) => {
    console.log('uploads files:', files, this)
    // There is no access to props here.
  }

  return (
    <Dropzone
      getUploadParams={getUploadParams}
      onChangeStatus={handleChangeStatus}
      onSubmit={handleSubmit}
      accept="image/*,.pdf,.doc,.docx"
    />
  )
}

1 个答案:

答案 0 :(得分:0)

由于它是功能性组件,因此您不需要this,并且可以从中获取道具

export default (props) => {

  const handleSubmit = (files, allFiles) => {
    console.log('uploads files:', files)
    // Get set state function from props
    props.setFiles(files)
  }

  return (
    <Dropzone
      getUploadParams={getUploadParams}
      onChangeStatus={handleChangeStatus}
      onSubmit={handleSubmit}
      accept="image/*,.pdf,.doc,.docx"
    />
  )
}

在父级中,您可以将该组件称为

...
const [files, setFiles] = useState(null)
...
return (
  <div>
  <div>Drop files</div>
  <CustomDropzone setFiles={setFiles} />
  </div>
)