Как добавить данные в массив внутри объекта реакции js

Я создаю приложение реагирования и хочу сохранить несколько фотографий в Firestore. Для этого я хочу взять их URL-адрес в массиве imageurl: [] и сохранить их в Firestore.

      const [data, setData] = useState({

      name: "",
      phone: "",
      location: "",
      imageurl:[],

   })

здесь все данные сохраняются и работают нормально, имя, телефон, местоположение, но проблема в том, что значение массива imageurl [] они не сохраняют

я сохраняю URL-адреса типа

            setData((prev)=> {

              return {

                ...prev, [data.imageurl] : [...data.imageurl , url]
              }
            })
           })

это не работает.

Я новичок в реакции, пожалуйста, подскажите мне, как мне решить эту проблему. Спасибо

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
55
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуйте с этим:

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. Например, вы можете вызвать его внутри обработчика событий, который обрабатывает загрузку изображений.

я проголосовал за ответ, брат

Vivek Fauzdar 22.09.2023 07:38
Ответ принят как подходящий

В setData при создании возвращаемого объекта вы указали значение как ключ, когда вы установили ключ как [data.imageurl]. также не используйте переменную данных внутри setData, используйте переменную prev, предоставляемую функцией

попробуйте этот код

setData((prev) => {
   return {
      ...prev,
      imageurl: [...prev.imageurl, url],
  };
});

большое спасибо, брат. это значит многое

Vivek Fauzdar 22.09.2023 07:34

Пожалуйста..

plsankar 22.09.2023 07:37

Вы также можете попробовать вот так:

    setData((prevState) => ({
  ...prevState,
  imageurl: [...prevState.imageurl, url]
}));

Код обновляет свойство imageurl в состоянии компонента, создавая новый объект состояния, который является копией предыдущего состояния, и добавляет новый URL-адрес в массив imageurl.

Добро пожаловать брат

Ankit Gupta 22.09.2023 08:15

Другие вопросы по теме