Javascript 从具有相同变异的另一个方法调用方法

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},毫秒){ 设置超时(()=>{

我的nuxt状态有以下代码块

导出常量突变={
注销(){
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)
  }
祝你好运