带参数的Vuex吸气剂

时间:2020-05-15 23:45:10

标签: vue.js vuex

我想知道为什么不能将vuex getter与具有默认值的属性一起使用:

getters: {
  getTest: (state, property = 'current') => {
     return state.test[property]
  }
}

当我像这样getTest.includes('something')使用它时,它不起作用,但是如果我像这样getTest().includes('something')使用它时,它起作用了吗?

由于没有使用任何参数,因此无需()

2 个答案:

答案 0 :(得分:1)

https://vuex.vuejs.org/guide/getters.html#method-style-access

getters: {
  getTest: (state) => (property = 'current') => {
    return state.test[property]
  }
}

// example usage
this.getTest().includes('something')

答案 1 :(得分:1)

吸气剂的第二个参数是其他吸气剂:

Getters还将收到其他getter作为第二个参数

https://vuex.vuejs.org/guide/getters.html#property-style-access

因此,您的property参数将是一个数组,因此state.test[property]总是返回undefined

要将getter用作带有参数的函数,需要使getter返回一个函数,如下所示:https://vuex.vuejs.org/guide/getters.html#method-style-access