массив с объектами: state.leadReacts = [{}, {}]
и есть computed свойство:
pricingFinished(){
return this.$store.state.leadReacts.filter(obj => {
return obj.status_id === 4
})
}
но проблема: когда state.leadReacts обновляется, это computed свойство не изменяется. что делать? может сделать первое computed свойство, которое будет возвращать state.leadReacts, и второе свойство, которое будет фильтровать первое, и возвращать только часть из них?
попробуй mapState использовать для leadReacts
попробовал сделать getters, но всё равно не работает. в дебаггере показывает, что в vuex геттеры возвращают правильные данные (реактивно). а вот в самом компоненте вычисляемые свойства, которые просто возвращают геттер (return this.$store.getters.leadReactsPricingFinished) - не реактивные, т.е. когда в геттере меняется содержимое, то в computed остаётся старое. обновление состояние я делаю через экшен=>мутация, т.е. вроде всё правильно. и в примерах код такой же как и у меня - работает, а у меня - нет. почему так?
по всей видимости, причина была в том что я изменял в store массив из объектов. поменял мутатор на вот такой: updateLeadReact(state, payload){Vue.set(state.leadReacts, payload)} (было так: updateLeadReact(state, payload){ state.leadReacts = payload; }, ) и заработало. не знал, что можно в мутаторе использовать Vue.set
Обсуждают сегодня