Как сохранить массив файловых объектов в хранилище приставок? - PullRequest
2 голосов
/ 11 июня 2019

Я хочу сохранить массив файловых объектов в хранилище приставок.

Это код о редукторах

    case types.SET_PICTURE:
      console.log("action");
      console.log(action.newPictureFiles);
      console.log(action.newPictureDataURLs);
      return {
        ...state,
        inquiryForm: {
          ...state.inquiryForm,
          pictureFiles: [...action.newPictureFiles],
          pictureDataURLs: [...action.newPictureDataURLs]
        }
      };

Этот код относится к отправке

class Attachment extends Component {
  constructor(props) {
    super(props);
    this.state = {
      pictureFiles: this.props.pictureFiles,
      pictureDataURLs: this.props.pictureDataURLs,
      uploadedURLs: []
    };
    this.onDrop = this.onDrop.bind(this);
  }

  onDrop(pictureFiles, pictureDataURLs) {
    // pictureFiles = [{File object}, {File object}, {File object}]
    console.log("onDrop")
    console.log(pictureFiles);
    console.log(pictureDataURLs);
    this.props.onSetPicture(pictureFiles, pictureDataURLs)
    this.setState({
      pictureFiles: pictureFiles,
      pictureDataURLs: pictureDataURLs,
    });
  }

console.log (action.newPictureFiles) печатается так же, как это [ Массив файловых объектов в chrome dbg ], после типов случаев функции редуктора.*].Почему редукторы не могут сохранить объект File в избыточном хранилище.и как это исправить?

1 Ответ

1 голос
/ 11 июня 2019

У вашего action.newPictureFiles есть файл, но он не отображается, потому что журнал консоли будет печатать файл как пустой объект.

Пожалуйста, используйте это для регистрации всех ваших данных, учитывая, что ваши action.newPictureFiles - это массив файлов.

action.newPictureFiles.forEach(file => {
    for (var pair of file.entries()) {
        console.log(pair[0] + ', ' + pair[1]);
    }
})

или только это для каждого файла

for (var pair of file.entries()) {
    console.log(pair[0]+ ', ' + pair[1]); 
}
...