" Watch"事件不会在Vuex商店中触发。这是非常基本的。它并不比帮助中的例子复杂。看不在商店里工作吗?
(我能找到的所有答案都与Angular有关。)
-Thanks
在store.js
state: {
warningSwitch : false,
}
(...)
watch: {
warningSwitch: function (newState, oldState) {
/* console.log(" Triggered "); */
if(newState){
this.showWarningNotice({title: "Oops", text:"Connection Lost"});
return;
} else {
this.showInfoNotice({title: "Whew...", text:"Connected"});
}
}
},
(...)
mutations: {
setWarningOn(state) {
state.warningSwitchCounter++;
state.warningSwitch = true;
},
}
答案 0 :(得分:0)
没有"手表"正如伯特在评论中提到的那样,在商店里。
根据您的需求和架构,您可以采用两种不同的方法来模拟此行为。
其一,您可以在您的组件中观看商店的吸气剂并在那里回复:
watch: {
`$store.getters.warningSwitch`: function (newState, oldState) {
/* console.log(" Triggered "); */
if(newState){
this.showWarningNotice({title: "Oops", text:"Connection Lost"});
return;
} else {
this.showInfoNotice({title: "Whew...", text:"Connected"});
}
}
},
二,您实际上可以在商店的操作中调度其他行为:
actions: {
setWarningOn: function(context, newState) {
// broadcast event here or commit another mutation
}
}