如何在反应中将自定义属性插入文件对象

How to insert custom properties to File object in react

我正在开发文件上传功能,当我 select 多个文件或单个文件时我想实现的目标 我想为每个 File 对象自定义 属性 分配自定义 属性 必须类似于 File 对象的 percentage:0。我努力尝试但没有找到任何合适的解决方案来解决这个问题。有人可以帮我解决这个问题吗?

谢谢

代码

  addManualAttachments = (event) => {
    let files = event.target.files

    const fileList = Array.from(files)

    if (fileList.length > 10) {
      Swal.fire('Warning !', 'Maximum files upload limit is 10', 'warning')
      return false
    }

    for (let i = 0; i < fileList.length; i++) {
      if (this.validateFile(fileList[i])) {
        this.setState((prevState) => {
          return {
            ...prevState,
            selectedFiles: this.uniqueFiles([...prevState.selectedFiles, fileList[i]]),
          }
        })
      }
    }
  }

如果它是一个普通的 Javascript 对象,您可以在遍历文件时向文件添加新的 属性 权限。此外,您可以使用 forEach 循环而不需要 for 循环:

addManualAttachments = (event) => {
  const files = Array.from(event.target.files);

  if (files.length > 10) {
    Swal.fire('Warning !', 'Maximum files upload limit is 10', 'warning')
    return false
  }

  files.forEach((file) => {
    if(this.validateFile(file)) {
      file.percentage = 0; // <-- This will add the new property to the object reference stored for that file object.
      this.setState((prevState) => {
        return {
          ...prevState,
          selectedFiles: this.uniqueFiles([...prevState.selectedFiles, file]),
        }
      });
    }
  });
}