在vuex getter上使用方法

时间:2017-12-07 09:08:47

标签: vue.js typeerror getter vuex

我想在.find()上执行Vuex getter方法。 但是当我这样做时,它会给我以下错误:

Uncaught TypeError: ur.find is not a function

我已经关注了文档,我似乎无法理解为什么我不能对vuex Getter提供的user-Object执行类似.find()或.forEach()的方法。 我做错了什么,或者这种想法超出了范围?

这是我的mixin auth.js

的一个例子
export const auth = {
    methods: {
        y(r){
            const ur = this.$store.getters.getUserRoles;
            console.log(ur); // Returns {__ob__: Observer}...
            ur.find( uRole => { // ur.find is not a function
                return uRole === r
            })
        }
    }
};

这是来自主要vue的我的Vuex实例; app.js

const store = new Vuex.Store({
    state: {
        user: {}
    },
    mutations: {
        setUser (state, data) {
            state.user = data;
        },
    },
    getters: {
        getUserRoles(state){
            return state.user.roles;
        }
    },
    actions: {
        getUser ({commit}) {
            axios.get('/api/user').then(response => {
                const data = response.data.data;
                commit('setUser', data);
            });
        }
    }
});

来自/api/user的回复:

{
  admin: true,
  projectManager: false,
  timeAdmin: false
}

0 个答案:

没有答案