Я создаю приложение реагирования и хочу сохранить несколько фотографий в Firestore. Для этого я хочу взять их URL-адрес в массиве imageurl: [] и сохранить их в Firestore.
const [data, setData] = useState({
name: "",
phone: "",
location: "",
imageurl:[],
})
здесь все данные сохраняются и работают нормально, имя, телефон, местоположение, но проблема в том, что значение массива imageurl [] они не сохраняют
я сохраняю URL-адреса типа
setData((prev)=> {
return {
...prev, [data.imageurl] : [...data.imageurl , url]
}
})
})
это не работает.
Я новичок в реакции, пожалуйста, подскажите мне, как мне решить эту проблему. Спасибо



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуйте с этим:
const [data, setData] = useState({
name: "",
phone: "",
location: "",
imageurl: [],
});
// Function to add a URL to the imageurl array
const addImageUrl = (url) => {
setData((prevData) => ({
...prevData,
imageurl: [...prevData.imageurl, url],
}));
};
// Example usage
const handleImageUpload = (url) => {
// Assuming you have obtained the URL from somewhere
addImageUrl(url);
};
Затем вы можете вызывать addImageUrl(url) всякий раз, когда захотите добавить URL-адрес в массив imageurl. Например, вы можете вызвать его внутри обработчика событий, который обрабатывает загрузку изображений.
В setData при создании возвращаемого объекта вы указали значение как ключ, когда вы установили ключ как [data.imageurl]. также не используйте переменную данных внутри setData, используйте переменную prev, предоставляемую функцией
попробуйте этот код
setData((prev) => {
return {
...prev,
imageurl: [...prev.imageurl, url],
};
});
большое спасибо, брат. это значит многое
Пожалуйста..
Вы также можете попробовать вот так:
setData((prevState) => ({
...prevState,
imageurl: [...prevState.imageurl, url]
}));
Код обновляет свойство imageurl в состоянии компонента, создавая новый объект состояния, который является копией предыдущего состояния, и добавляет новый URL-адрес в массив imageurl.
Добро пожаловать брат
я проголосовал за ответ, брат