是否可以订阅个别突变?
而不是:
this.$store.subscribe((mutation, state) => {
if(mutation === 'someMutation'){
doSomething()
}
})
我想要这样的事情:
this.$store.subscribe('someMutation', state => {
doSomething()
})
答案 0 :(得分:0)
如何将Vue原型中的方法包装起来?
所以没有:
this.$store.subscribe((mutation, state) => {
if(mutation === 'someMutation'){
doSomething()
}
})
您会有类似的内容
Vue.prototype.subscribeMutation = function(someMutation, someFunction) {
this.$store.subscribe((mutation, state) => {
if(mutation === someMutation){
someFunction(state)
}
})
}
我尚未测试代码,但是您应该能够轻松获得工作结果。
答案 1 :(得分:0)
来自vuex文档:
在每次突变后调用处理程序并接收突变 描述符和变异后状态作为参数。
它将对所有突变做出反应,因此您只能根据自己的条件实施。
答案 2 :(得分:-1)
如果突变的唯一工作是更改存储,您能否告诉您该突变是由什么原因引起的:
[types.MUTATE_SET_ACTIVE_TICKER]: (state, payload) => {
state.activeTicker = payload
},
然后您可以直接从组件中的存储中获取数据:
this.$store.state.activeTicker
答案 3 :(得分:-4)
尝试这样的事情:
this.$store.subscribe(mutation => {
if (mutation.type === 'setData') {
// do something here
}
});