в реакт нейтив + редакс?
у меня есть корзина
const initialState = {
basket: [],
},
я в нее добавляю элемент (товар) в виде объекта. у объекта есть поле count
но на странице каталога, я также и могу менять количество,
как написать редьюсер который меняет в самом массиве, у нужного объекта - поле count
проще всего - добавлять id/sku товара в массив, на экране выводить количество вхождений (filter().length) а если в объекте обновлять count - вопрос скорее про базовый js а не про redux / react / rn
есть товар с id - 22 вот допустим нажал кнопку добавить 3 раза -> в массив добавилось [22,22,22] - верно? при помощи filter().length - мы поняли что в коризе товар с id - 22 - в количекстве 3 штук а как потом минусовать из массива ? например нажал на кнопку Минус и как превратить массив [22,22,22] в [22,22]?
// params = {count: 10} или любое другое поле у объекта function updateArrayItem(arr, id, params){ //обходим весь массив и создаем новый что бы реакт понял что массив изменился const newArr = arr.map(item => { if(item.id === id){ //если это наш елемент то заменяем в нем только переданные параметры return {...item, ...params} } // если не наш то просто добавляем его в уже новый массив return item }) return newArr }
@js_ru / @js_noobs_ru или лучше даже в учебник заглянуть, сэкономите себе много сил и времени в будущем.
delete a[1] slice pop shift вариантов много)
Обсуждают сегодня