@Maria_Gavrilova

Теряется __ob__ observer у массива из стейта vuex?

Здравствуйте. Пишу приложение на vue. У меня в стейте vuex есть массивы объектов: posts и comments. Объекты из массива comments имеют поле post_id.
В компоненте я определяю computed свойство вот так:
computed: {
    comments() {
            return this.$store.state.comments.filter(comment => comment.post_id === this.postId);
      }
}

Если изначально в самом стейте объявленны объекты в массиве comments, то в этом случае если вывести в консоль это computed-свойство мы увидим - [{}, __ob__: Observer] , они находятся под наблюдением.

Но если я посредством мутации newComment пушу объекты в массив comments вот таким образом:
newComment(state, payload) {
    let comment = {...}
    state.comments.push(comment);
}


В этом случае если вывести в консоль это computed-свойство, то мы увидим примерно следующее: [{…}] , тоесть __ob__ observer ОТСУТСТВУЕТ)

Вопрос - как в стейт пушить объекты так, чтобы они не теряли __ob__ observer?

p.s. Эти сущности я выдумала, задача у меня на самом деле сложнее, я её упростила, оставив самую суть. Подскажите пожалуйста. Заранее спасибо.
  • Вопрос задан
  • 242 просмотра
Решения вопроса 1
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
return this.$store.state.comments.filter(comment => comment.post_id === this.postId);

Так оно не работает что ли в этом случае? Вроде было должно.

Если нет, то запилите фильтрацию в самом стейте, пример по той же ссылке. Хотя причин не работать у варианта с computed нет, если вы только не упростили эту самую причину для вопроса :)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы