如何从一个存储文件访问另一个存储文件的突变?
How acccess mutation from one store file for another store file?
如何从我的 store
文件夹中的一个文件访问存在于我的 store
文件夹中的另一个文件中的突变?
这是我的目录:
store/
user.js
loading.js
在 user.js
我有:
async googleSignInRedirect({ commit }) {
try {
const result = await this.$fire.auth.getRedirectResult()
if (result.credential) {
// const credential = result.credential
// console.log('got a credential? ', credential)
this.$router.replace('/')
commit('loading/SET_LOADING', false) //< -- what is correct way to write this ?
}
return null
} catch (error) {
console.error(error)
}
},
这里是 loading.js
代码:
export const state = () => ({
loading: false
})
export const mutations = {
SET_LOADING(state, payload) {
state.loading = payload
}
}
如何从 user.js
访问 loading.js
?如果我执行上述样式,我会在控制台中收到以下错误:
vuex.esm.js?2f62:791 [vuex] unknown local mutation type: loading/SET_LOADING, global type: user/loading/SET_LOADING
只需将 { root: true }
作为最后一个参数传递给 commit
,所以:
async googleSignInRedirect({ commit }) {
try {
const result = await this.$fire.auth.getRedirectResult()
if (result.credential) {
this.$router.replace('/')
commit('loading/SET_LOADING', false, { root: true })
}
return null
} catch (error) {
console.error(error)
}
}
您可以在 Vuex documentation 中找到更多详细信息。
如何从我的 store
文件夹中的一个文件访问存在于我的 store
文件夹中的另一个文件中的突变?
这是我的目录:
store/
user.js
loading.js
在 user.js
我有:
async googleSignInRedirect({ commit }) {
try {
const result = await this.$fire.auth.getRedirectResult()
if (result.credential) {
// const credential = result.credential
// console.log('got a credential? ', credential)
this.$router.replace('/')
commit('loading/SET_LOADING', false) //< -- what is correct way to write this ?
}
return null
} catch (error) {
console.error(error)
}
},
这里是 loading.js
代码:
export const state = () => ({
loading: false
})
export const mutations = {
SET_LOADING(state, payload) {
state.loading = payload
}
}
如何从 user.js
访问 loading.js
?如果我执行上述样式,我会在控制台中收到以下错误:
vuex.esm.js?2f62:791 [vuex] unknown local mutation type: loading/SET_LOADING, global type: user/loading/SET_LOADING
只需将 { root: true }
作为最后一个参数传递给 commit
,所以:
async googleSignInRedirect({ commit }) {
try {
const result = await this.$fire.auth.getRedirectResult()
if (result.credential) {
this.$router.replace('/')
commit('loading/SET_LOADING', false, { root: true })
}
return null
} catch (error) {
console.error(error)
}
}
您可以在 Vuex documentation 中找到更多详细信息。