传递参数的 Vuex 反应式 mapGetter

Vuex reactive mapGetters with arguments passed through

我有很多 getter 向商店传递参数,例如:

this.$store.getters['getSomeThing'](this.id)

而且我没有找到关于如何最佳地使用 mapGetters 来保持反应性,同时传递参数的建议。我发现的一个建议是映射 getter 然后将参数传递给 mounted:

computed: {  
  ...mapGetters([
    'getSomeThing'
  ])
},
mounted () {
  this.getSomeThing(this.id)
}

这似乎确实不是最佳选择,因为它只会检查已安装状态的更改。关于在将参数传递给 getter 时如何最好地保持反应性的任何建议?下面是与上述代码匹配的 getter 示例:

getSomeThing: (state) => (id) => {
  return state.things.find(t => { return t.id === id })
}

这是我的一个项目的片段:

    computed: {
        ...mapGetters('crm', ['accountWithId']),
        account() {
            return this.accountWithId(this.$route.params.id)
        }
    },

这使得 this.account 反应并依赖于参数。

所以...

computed: {  
  ...mapGetters([
    'getSomeThing'
  ]),
  thing() {
    return this.getSomeThing(this.id)
  }
},