使用参数时,如何监视商店值的变化?我通常会通过一个吸气剂来做到这一点,但是我的吸气剂接受一个参数,这使我很棘手,因为我没有找到有关这种情况或堆栈问题的文档。
(出于演示原因,代码被最小化) 我的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
}
所以基本上,我想了解如何传递参数,以便手表能正常工作。
答案 0 :(得分:3)
我认为您的问题没有直接的解决方法。
首先,对于watch函数,它仅接受两个参数,newValue和oldValue,因此无法传递您的扫描参数。
此外,您的results属性在计算后,仅返回一个函数,如果您观看该函数,它将永远不会被触发。
我建议您将吸气剂从嵌套函数更改为简单函数。
但是,如果您真的想用这种方法,则应该创建一个桥计算属性
computed: {
...mapGetters([
'results',
]),
scan() {
},
mutatedResults() {
return this.results(this.scan);
},
watch: {
mutatedResults() {
}
}
}