vuejs 2使用参数时如何从vuex看存储值

时间:2018-08-25 10:58:54

标签: vue.js vuejs2 vuex

使用参数时,如何监视商店值的变化?我通常会通过一个吸气剂来做到这一点,但是我的吸气剂接受一个参数,这使我很棘手,因为我没有找到有关这种情况或堆栈问题的文档。

(出于演示原因,代码被最小化) 我的store.js:

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

let report = {
    results: [],
};
export const store = new Vuex.Store({
    state: {   
        broken: Object.assign({}, report),    
    },
     results: (state) => (scan) => {
            return state[scan].results
        },
});

vue-component.vue:

computed: {
        ...mapGetters([ 
         'results',
        ]),

    watch: {
        results(){ // How to pass the param ??
            // my callback
        }

所以基本上,我想了解如何传递参数,以便手表能正常工作。

1 个答案:

答案 0 :(得分:3)

我认为您的问题没有直接的解决方法。
首先,对于watch函数,它仅接受两个参数,newValue和oldValue,因此无法传递您的扫描参数。
此外,您的results属性在计算后,仅返回一个函数,如果您观看该函数,它将永远不会被触发。

我建议您将吸气剂从嵌套函数更改为简单函数。

但是,如果您真的想用这种方法,则应该创建一个桥计算属性

computed: {
  ...mapGetters([
    'results',
  ]),
  scan() {

  },

  mutatedResults() {
    return this.results(this.scan);
  },

  watch: {
   mutatedResults() {

   }
  }

}