ReactJS - отправка пустого объекта с помощью redux-саги - PullRequest
1 голос
/ 31 января 2020

Я использую сагу. js, и когда я делаю свой запрос, мой файл пуст.

Мне нужно сделать что-то дополнительное, чтобы отправить объект посредством саги yield?

Моя сага. js:

export function* uploadS3Request({ payload }) {
  console.log('payload', payload)
  const { uploadTypeName, title, imageHeight, imageWidth, file } = payload

  try {
    yield call(api.post, `https://someurl.com/s3`, {
      uploadTypeName,
      title,
      imageHeight,
      imageWidth,
      file
    })

    toast.success('SUCCESS TEST');

  } catch (err) {
    toast.error('Error while trying to update image');
  }
}

Это файл console.log из полезной нагрузки в моей саге. js: (вся информация здесь) enter image description here

Но по моему запросу файл пуст: enter image description here

1 Ответ

1 голос
/ 31 января 2020

Это не проблема избыточности или сужения саги, а проблема создания многочастного тела формы.

Предполагая, что вы используете axios или apisauce, вы захотите добавить файл для формирования данных и отправить.

...
const { uploadTypeName, title, imageHeight, imageWidth, file } = payload
const formData = new FormData();
formData.append('file', file);
formData.append('uploadTypeName', uploadTypeName);
...

yield call(api.post, `https://someurl.com/s3`, formData, {
  headers: {
    'Content-Type': 'multipart/form-data'
  }
})
...
...