Vue.js-为什么我的子组件无法将存储获取方法作为属性访问?

时间:2019-10-25 18:52:49

标签: vue.js vuex getter

我在商店中定义了一个吸气剂,然后尝试在子组件中访问它,但我只能将其作为一种方法来访问...

我阅读了文档,我们可以将其作为属性来访问,但是当我这样做时,它返回给我getter函数的签名,这是我的代码: const store = {     状态:{         存储     },     吸气剂:{         用户名:(状态,获取者)=> {             返回'tmp';         }     } }

我的孩子部分:

export default {
    data() {
        return {
            username: this.initialUsername
        }
    },
    methods: {
        ...mapMutations([
            'login'
        ]),
        onLogin(e) {
            this.login(this.username);
        }
    },
    computed: {
        ...mapGetters({
            initialUsername: 'username'
        })
    },
    created() {
        console.log(this.username)
    }
}

我在控制台中得到的内容:

ƒ username(state, getters) {
      return 'tmp';
}

知道为什么吗?

谢谢;)

1 个答案:

答案 0 :(得分:0)

好的,我弄清楚了为什么它不起作用大声笑,我只是没有实例化vuex存储,而是实例化了包含我的状态和获取方法的普通对象...:

export default {
    state: {
        storage
    },
    getters: {
        username: (state, getters) => {
            return state.storage.username;
        }
    },
    mutations: {
        [LOGIN]: (state, username) => {
            state.storage.username = username;
        },
        [LOGOUT]: state => {
            state.storage.logout();
        }
    }
}

抱歉,这是我第一次使用vuex'-'