Post state:
const [post, setPost] = React.useState({
description: "",
photos: []
});
При нажатии на submit делаю два запроса: первый на загрузку фото в папку, второй на создание поста.
В первом запросе получаю имена файлов, которые загрузились в папку, затем обновляю состояние для поста:
fetch(`${REACT_APP_API_URL}/upload/photos`, {
method: "POST",
headers: {
"Accept-Type": "application/json",
Authorization: `Bearer ${Cookies.get("token") || ""}`,
},
body: formData
})
.then((response) => response.json())
.then((data) => {
const { fileNames } = data; // fileNames: ["photos-1661976218835.jpg", "photos-1661976218836.jpg"]
setPost({ ...post, photos: fileNames });
});
Второй запрос:
fetch(`${REACT_APP_API_URL}/posts/add`, {
method: "POST",
headers: {
Authorization: `Bearer ${Cookies.get("token") || ""}`,
"Content-Type": "application/json"
},
body: JSON.stringify(post) // {description: "...", photos: []}
})
.then((response) => response.json())
.then((data) => {
....
});
Прикол в том, что fileNames приходит, а photos не обновляется, то есть на сервер приходит
photos: []
(description и другие свойства обновляются)