Фильтрация нескольких объектов с помощью функции lodash filter в действиях vuex - PullRequest
0 голосов
/ 11 июля 2019

Попытка отфильтровать коллекцию сущностей (типичное сообщение в блоге) по некоторым значениям, используя функцию фильтра lodash. Я занимаюсь разработкой с Vue.js (последняя версия) и у меня есть модуль vuex (post.js) с некоторыми геттерами:

computed: {
  ...mapGetters('post', ['postBySlug', 'postsWithoutCurrentPost']),
  posts() {
    return this.postsWithoutCurrentPost(this.slug, this.category)
  },
},

Я вызываю postsWithoutCurrentPost getter с двумя параметрами для фильтрации сообщений в блоге (из магазина vuex) и получаю все сообщения в блоге с помощью this.category минус текущее сообщение в блоге (this.slug).

Итак, реализация postsWithoutCurrentPost выглядит следующим образом:

export const getters = {
  postsWithoutCurrentPost: state => (slug, category) => 
    _filter(state.posts, post => post.fields.slug !== slug && post.fields.category.fields.name === category.fields.name)
}

Осматривая инструменты Vue Dev, я замечаю, что у меня ошибка

сообщения: "(ошибка при оценке)"

Но это действительно странно для меня.

Я ушел от этой реализации:

export const getters = {
  postsWithoutCurrentPost: state => (slug, category) => 
    _filter(state.posts, post => post.fields.slug !== slug)
}

, который работает без ошибок, очевидно, без учета фильтрации по категориям.

Почему при добавлении условия метод перестает работать? Где я делаю не так?

...