Size: a a a

Vue.js Russian Developers Community

2020 August 14

СН

Сергей Носачёв... in Vue.js Russian Developers Community
меняю так
 [CHANGE_PRODUCT_FIELD](state, payload) {
   const { index, value, field } = payload;
   Vue.set(state.product[index], field, value);
 },
источник

СН

Сергей Носачёв... in Vue.js Russian Developers Community
и просто без Vue.set, тоже пробовал
источник

GS

Grigorii K. Shartsev in Vue.js Russian Developers Community
Сергей Носачёв
а что есть deep true, не знал
watch: {
 product: {
   deep: true,
   handler(newValue, oldValue) {}
 }
}
источник

GS

Grigorii K. Shartsev in Vue.js Russian Developers Community
Сергей Носачёв
меняю так
 [CHANGE_PRODUCT_FIELD](state, payload) {
   const { index, value, field } = payload;
   Vue.set(state.product[index], field, value);
 },
set тут не нужен
источник

GS

Grigorii K. Shartsev in Vue.js Russian Developers Community
если field существует в объекте
источник

VS

Vladimir Sadchikov in Vue.js Russian Developers Community
А в сет там надо индекс вторым агрументом передавать же нет?
источник

СН

Сергей Носачёв... in Vue.js Russian Developers Community
щас попробую
а если не существует нужен ?
источник

GS

Grigorii K. Shartsev in Vue.js Russian Developers Community
Сергей Носачёв
щас попробую
а если не существует нужен ?
да
источник

GS

Grigorii K. Shartsev in Vue.js Russian Developers Community
Vladimir Sadchikov
А в сет там надо индекс вторым агрументом передавать же нет?
Он же объект меняет, а не массив
источник

GS

Grigorii K. Shartsev in Vue.js Russian Developers Community
Сергей Носачёв
щас попробую
а если не существует нужен ?
Нельзя всего 2 вещи.
1. менять элементы массива по индексу
2. добавлять новые свойства в объект
источник

VS

Vladimir Sadchikov in Vue.js Russian Developers Community
А, ну да
источник

VS

Vladimir Sadchikov in Vue.js Russian Developers Community
Нормализуй стор с продуктами
источник

VS

Vladimir Sadchikov in Vue.js Russian Developers Community
Будет счастье
источник

СН

Сергей Носачёв... in Vue.js Russian Developers Community
Grigorii K. Shartsev
Нельзя всего 2 вещи.
1. менять элементы массива по индексу
2. добавлять новые свойства в объект
а как же тогда менять если не по индексу слонировать и менять полностью объект
и если нужно новое поле, как тогда быть?
источник

GS

Grigorii K. Shartsev in Vue.js Russian Developers Community
Vladimir Sadchikov
Нормализуй стор с продуктами
Ну если там вложенность маленькая, и нет m-m, то терпимо.
источник

GS

Grigorii K. Shartsev in Vue.js Russian Developers Community
Сергей Носачёв
а как же тогда менять если не по индексу слонировать и менять полностью объект
и если нужно новое поле, как тогда быть?
Если нужно новое поле, то через Vue.set
источник

GS

Grigorii K. Shartsev in Vue.js Russian Developers Community
либо иммутабельно
источник

СН

Сергей Носачёв... in Vue.js Russian Developers Community
имутабельно ошбка же будет
источник

GS

Grigorii K. Shartsev in Vue.js Russian Developers Community
Сергей Носачёв
имутабельно ошбка же будет
Если всё-всё иммутабельно, то не будет, просто будет супер неэффективно :D
источник

GS

Grigorii K. Shartsev in Vue.js Russian Developers Community
Можно же новый products создать
источник