在vuex动作中使用lodash过滤器功能过滤多个对象

时间:2019-07-10 21:18:06

标签: javascript lodash vuex

尝试使用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开发工具时,我发现我有一个错误

帖子:“(评估时出错)”

但这对我来说真的很奇怪。

我从此实现中退出:

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

工作正常,没有出现任何错误,显然没有考虑按类别进行过滤。

为什么要添加条件才能使方法停止工作?我在哪里做错了?

0 个答案:

没有答案