Javascript 从具有相同变异的另一个方法调用方法
我的nuxt状态有以下代码块Javascript 从具有相同变异的另一个方法调用方法,javascript,vue.js,vuejs2,nuxtjs,Javascript,Vue.js,Vuejs2,Nuxtjs,我的nuxt状态有以下代码块 导出常量突变={ 注销(){ localStorage.removeItem('userToken') localStorage.removeItem('expiryDate') localStorage.removietem('userId') this.state.userId=null this.state.token=null this.state.authenticated=false }, 自动启动({dispatch},毫秒){ 设置超时(()=>{
导出常量突变={
注销(){
localStorage.removeItem('userToken')
localStorage.removeItem('expiryDate')
localStorage.removietem('userId')
this.state.userId=null
this.state.token=null
this.state.authenticated=false
},
自动启动({dispatch},毫秒){
设置超时(()=>{
dispatch.logout()
},毫秒)
}
}
在Vuex中,“分派”语法属于操作,而不是突变。要调用另一个突变,您需要对突变使用“提交”
您还需要使用字符串参数调用dispatch和commit函数,该参数表示要调用的操作或变体的名称,例如
commit('logout')
或dispatch('fetchUserInfo')
当涉及到您的主要问题时,在一个突变中进行另一个突变是违反Vuex实践的,实际上不可能。
Vuex突变可以采用两个参数,state
和payload
<代码>提交不是其中之一
这些类型的异步函数应该列在actions下,特别是当您实际上要使用API调用或任何类型的HTTP请求而不是setTimeOut函数时。在你的情况下,我会将自体突变改写为如下动作:
autoLogout ({commit}, milliseconds) {
setTimeout(() => {
commit('logout')
}, milliseconds)
}
祝你好运 在Vuex中,“调度”语法属于操作,而不是突变。要调用另一个突变,您需要对突变使用“提交”
您还需要使用字符串参数调用dispatch和commit函数,该参数表示要调用的操作或变体的名称,例如
commit('logout')
或dispatch('fetchUserInfo')
当涉及到您的主要问题时,在一个突变中进行另一个突变是违反Vuex实践的,实际上不可能。
Vuex突变可以采用两个参数,state
和payload
<代码>提交不是其中之一
这些类型的异步函数应该列在actions下,特别是当您实际上要使用API调用或任何类型的HTTP请求而不是setTimeOut函数时。在你的情况下,我会将自体突变改写为如下动作:
autoLogout ({commit}, milliseconds) {
setTimeout(() => {
commit('logout')
}, milliseconds)
}
祝你好运