vuex命名空间模块auth的重复命名空间auth /

时间:2020-01-21 09:12:02

标签: vuex nuxt.js mixins getter vuex-modules

我正在将nuxt.js与auth模块一起使用。 每次我在个人资料上打开新页面时,都会出现此错误消息。 我在我的plugins / mixins目录中创建了一个名为auth.js的mixin。该文件包含以下代码:

export const getters = {
    authenticated(state) {
        return state.loggedIn;
    },

    user(state){
        return state.user;
    }
};

我用以下代码创建了一个名为auth.js的吸气剂文件:

import Vue from 'vue'
import {mapGetters} from 'vuex'

const User = {
    install(Vue, options) {
        Vue.mixin({
            computed: {
                ...mapGetters({
                    user: 'auth/user',
                    authenticated: 'auth/authenticated'
                })
            }
        })
    }
};

Vue.use(User);

吸气剂和混合剂起作用,但是每次我打开页面时,它都会给我这个错误,而且我不知道如何解决。我已经试过这个问题的解决方案: duplicate namespace auth/ for the namespaced module auth 虽然这确实可以解决错误,但是却使我的吸气剂无法定义。

1 个答案:

答案 0 :(得分:1)

是的,我找到了一种可行的方法... 切换到index.js auth.js逻辑,然后删除auth.js。

index.js

export const getters = {
authenticated(state) {
  return state.auth.loggedIn
},

user(state) {
  return state.auth.user
}
}

如果使用的是user.js mixin,请对其进行如下修订:

import Vue from 'vue'
import {mapGetters} from 'vuex'

const User = {
    install(Vue, options) {
        Vue.mixin({
            computed: {
                ...mapGetters({
                    user: 'user',
                    authenticated: 'authenticated'
                })
            }
        })
    }
};

Vue.use(User);

插件:

** Plugins to load before mounting the App
*/
plugins: ["./plugins/mixins/user.js"
],