风一般
风一般
  • 发布:2020-04-24 18:04
  • 更新:2023-08-25 09:45
  • 阅读:2388

uni-app vuex 模块化问题

分类:uni-app

vuex 模块化之后 this.$store.dispatch('user/login') 会报错 unknown action type: user/login
但是用this.$store.dispatch('login')就没问题, 但是login是在user模块里面的。

store/index.js 文件

import Vue from 'vue'  
import Vuex from 'vuex'  
import getters from './getters.js'  
import user from './modules/user'  

Vue.use(Vuex)  

const store = new Vuex.Store({  
  modules: {  
      user  
  },  
  getters  
})  

export default store

store/modules/user.js 文件

import Vue from 'vue'
import Vuex from 'vuex'
import { login } from '@/api/home'

const state = {
jwt: ''
}

const mutations = {
SET_JWT: (state, jwt) => {
state.jwt = jwt
}
}

const actions = {
login({ commit }, userInfo) {
return new Promise((resolve, reject) => {
login(userInfo).then(response => {
resolve()
}).catch(error => {
reject(error)
})
})
}
}

export default {
namespace: true,
state,
mutations,
actions
}

2020-04-24 18:04 负责人:无 分享
已邀请:
Alsey_

Alsey_

namespace应该写作namespaced

p***@gmail.com

p***@gmail.com

这里确实需要写namespaced

2***@qq.com

2***@qq.com

我也遇到相同的问题?这个是应该怎么解决,模块的getter和mutations、state都生效,就是action找不到。用的就是“”namespaced“”

要回复问题请先登录注册