MODULE 不起作用 - 未知突变类型:user/setUserInfo
MODULE doesn't work - unknown mutation type: user/setUserInfo
这是我的 store/index.js
const store = new Vuex.Store({
modules: {
app,
user,
},
state: {
token: getToken(),
hasLogin: false,
},
mutations: {
...rootMutations,
},
actions: {
...rootActions,
},
})
export default store
store/modules/user.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
namespaced: true,
state: {
phone: '',
},
mutations: {
setUserInfo(
{ state },
{ phone },
) {
// ...
state.phone = phone | state.phone
},
},
})
export default store
这里是 Action wrong wrong
rootActions.js
const actions = {
getUserInfo: async function(store) {
const { commit, state } = store
console.log(store)
return await new Promise((resolve, reject) => {
// a lot of request code, save results in user/setUserInfo
commit('login')
commit('user/setUserInfo', {
phone: r.phone,
})
})
},
}
那么警报有问题
[vuex] unknown mutation type: user/setUserInfo(env: macOS,mp,1.05.2106300; lib: 2.17.0)
我不知道为什么我不能访问用户模块中的突变,我搜索了很多从模块访问根突变的示例,但它似乎对我不起作用。
谁能帮忙解决这个问题
您不应该为每个模块创建新的 vuex 存储实例。您需要导出包含 state
、actions
、mutations
和 actions
.
的对象
因此您的 user.js
文件应如下所示:
export default {
namespaced: true,
state: {
phone: '',
},
mutations: {
setUserInfo(
state,
{ phone },
) {
// ...
state.phone = phone | state.phone
},
},
}
这是我的 store/index.js
const store = new Vuex.Store({
modules: {
app,
user,
},
state: {
token: getToken(),
hasLogin: false,
},
mutations: {
...rootMutations,
},
actions: {
...rootActions,
},
})
export default store
store/modules/user.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
namespaced: true,
state: {
phone: '',
},
mutations: {
setUserInfo(
{ state },
{ phone },
) {
// ...
state.phone = phone | state.phone
},
},
})
export default store
这里是 Action wrong wrong
rootActions.js
const actions = {
getUserInfo: async function(store) {
const { commit, state } = store
console.log(store)
return await new Promise((resolve, reject) => {
// a lot of request code, save results in user/setUserInfo
commit('login')
commit('user/setUserInfo', {
phone: r.phone,
})
})
},
}
那么警报有问题
[vuex] unknown mutation type: user/setUserInfo(env: macOS,mp,1.05.2106300; lib: 2.17.0)
我不知道为什么我不能访问用户模块中的突变,我搜索了很多从模块访问根突变的示例,但它似乎对我不起作用。
谁能帮忙解决这个问题
您不应该为每个模块创建新的 vuex 存储实例。您需要导出包含 state
、actions
、mutations
和 actions
.
因此您的 user.js
文件应如下所示:
export default {
namespaced: true,
state: {
phone: '',
},
mutations: {
setUserInfo(
state,
{ phone },
) {
// ...
state.phone = phone | state.phone
},
},
}