Я работаю над функцией загрузки файлов, чего я хочу достичь, выбирая несколько файлов или один файл. Я хочу назначить настраиваемое свойство каждому объекту File. Настраиваемое свойство объекта должно быть похоже на percentage:0 для объекта File. Я очень старался, но не нашел подходящего решения для решения этой проблемы. Может ли кто-нибудь помочь мне, как решить эту проблему.

Благодарность

Код

  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]]),
          }
        })
      }
    }
  }
0
Shopify Guy 11 Фев 2021 в 19:49

1 ответ

Лучший ответ

Если это простой объект 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]),
        }
      });
    }
  });
}
1
Jason Bellomy 11 Фев 2021 в 17:05