Size: a a a

Nuxt.js — русскоговорящее сообщество

2020 December 01

w

wkornilow in Nuxt.js — русскоговорящее сообщество
Делай deepclone массива когда ложишь в стоо
источник

TB

Temirlan Balguzhin in Nuxt.js — русскоговорящее сообщество
Ок)
источник

TB

Temirlan Balguzhin in Nuxt.js — русскоговорящее сообщество
Похоже что не из-за этого
источник

TB

Temirlan Balguzhin in Nuxt.js — русскоговорящее сообщество
Склонировал при помощи рест оператора
источник

TB

Temirlan Balguzhin in Nuxt.js — русскоговорящее сообщество
Все равно ошибка
источник

AS

Alexandr Sachishin in Nuxt.js — русскоговорящее сообщество
Попробуй Array.from(arr)
источник

GS

Grigorii K. Shartsev in Nuxt.js — русскоговорящее сообщество
Если сортировка проходит в мутации, то не должно быть такой ошибки.
источник

TB

Temirlan Balguzhin in Nuxt.js — русскоговорящее сообщество
Mutation:
updateList(state, list) {
   state.list = list;
}

Action:
sortList({ state, commit }, sortType) {
   If (state.list.length) {
       switch (sortType) {
          case 'price':
              commit ({
                 type: 'updateList',
                 list: [...state.list.sort(...)]
})
}
   }
}
источник

GS

Grigorii K. Shartsev in Nuxt.js — русскоговорящее сообщество
Проверь:
1. Что в action не меняется массив напрямую
2. Что проблема точно в этой сортировке
источник

TB

Temirlan Balguzhin in Nuxt.js — русскоговорящее сообщество
Вот так
источник

GS

Grigorii K. Shartsev in Nuxt.js — русскоговорящее сообщество
Temirlan Balguzhin
Mutation:
updateList(state, list) {
   state.list = list;
}

Action:
sortList({ state, commit }, sortType) {
   If (state.list.length) {
       switch (sortType) {
          case 'price':
              commit ({
                 type: 'updateList',
                 list: [...state.list.sort(...)]
})
}
   }
}
Так нельзя, сортировка - мутирующая операция
источник

GS

Grigorii K. Shartsev in Nuxt.js — русскоговорящее сообщество
Temirlan Balguzhin
Mutation:
updateList(state, list) {
   state.list = list;
}

Action:
sortList({ state, commit }, sortType) {
   If (state.list.length) {
       switch (sortType) {
          case 'price':
              commit ({
                 type: 'updateList',
                 list: [...state.list.sort(...)]
})
}
   }
}
Либо
list: [...state.list].sort(...)
Либо вообще сделай отдельную мутацию для сортировки, чтобы не копировать
источник

TB

Temirlan Balguzhin in Nuxt.js — русскоговорящее сообщество
Ааа
источник

GS

Grigorii K. Shartsev in Nuxt.js — русскоговорящее сообщество
Сортировка копии и замена дороже мутации
источник

TB

Temirlan Balguzhin in Nuxt.js — русскоговорящее сообщество
Тип напрямую нельзя сортировать, а только копию
источник

TB

Temirlan Balguzhin in Nuxt.js — русскоговорящее сообщество
А то я сначала отсортировал, а затем скопировал
источник

GS

Grigorii K. Shartsev in Nuxt.js — русскоговорящее сообщество
Temirlan Balguzhin
Тип напрямую нельзя сортировать, а только копию
Да, напрямую = мутировать
источник

GS

Grigorii K. Shartsev in Nuxt.js — русскоговорящее сообщество
В JS нет иммутабельной сортировки
источник

TB

Temirlan Balguzhin in Nuxt.js — русскоговорящее сообщество
Grigorii K. Shartsev
В JS нет иммутабельной сортировки
Ну только если не редакс, там редюсеры не позволят такое)
источник

TB

Temirlan Balguzhin in Nuxt.js — русскоговорящее сообщество
Grigorii K. Shartsev
Да, напрямую = мутировать
Пасиб
источник