Javascript 如何在vuex js存储模块中设置全局变异
我需要能够从任何Vuex模块更改全局变量Javascript 如何在vuex js存储模块中设置全局变异,javascript,vuejs2,vuex,nuxt.js,Javascript,Vuejs2,Vuex,Nuxt.js,我需要能够从任何Vuex模块更改全局变量警报的状态 存储/索引.js: export const state = () => ({ alert: null }) export const mutations = { SET_ALERT: function (rootState, alert) { rootState.alert = alert } } export const actions = { setalert({commit}){
警报
的状态
存储/索引.js:
export const state = () => ({
alert: null
})
export const mutations = {
SET_ALERT: function (rootState, alert) {
rootState.alert = alert
}
}
export const actions = {
setalert({commit}){
commit('SET_ALERT', 'warning')
}
}
商店/child.js:
export const state = () => ({
alert: null
})
export const mutations = {
SET_ALERT: function (rootState, alert) {
rootState.alert = alert
}
}
export const actions = {
setalert({commit}){
commit('SET_ALERT', 'warning')
}
}
我想调用
setalert
并将全局store.state.alert
设置为“警告”
。当前,store.state.child.alert
被设置为“warning”
。您无法从另一个模块的内部访问vuex模块的状态
现在,您的SET\u警报
正在引用child
状态,因为它在child
模块的范围内。将state对象的参数名更改为rootState
不会更改它的名称
但是,您只需将SET_ALERT
mutation移动到index.js
文件中即可。突变仍然可以从子模块的setalert
操作调用
如果要为模块使用名称空间(namespace:true
),则需要在commit
调用中明确说明要使用根模块,如下所示:
commit('SET_ALERT', 'warning', { root: true });
无效:我将突变SET\u-ALERT
移动到index.js
,现在我得到错误[vuex]未知的局部突变类型:SET\u-ALERT,全局类型:articles/SET\u-ALERT
,有什么想法吗?你在使用名称空间吗?commit('SET\u-ALERT',warning',{root:true})代码>-太棒了!现在它工作了,谢谢!我不确定我是否理解你,我只是在nuxt
+express
中了解到这个vuex
。你能给我一个链接到你发现{root:true}
的文档吗?@bааСаааjаБааааааа107