Home » vue » how to acces getter from another js file

how to acces getter from another js file

Posted by: admin November 26, 2021 Leave a comment

Questions:

Consider a laravel + vuejs project:
i want to get my currentUser role in my Acces.js file by using store.getters.currentUser but it didnt work it show me

Error in render: “TypeError: Cannot read property ‘getters’ of
undefined

i try many ways but it didn’t work! any help please??

this my Acces.js:

import {store} from './store' 
export default class  Acces {


 Admin(){
     return store.getters.currentUser.role ==="admin";
 }
 NotUser(){
     return store.getters.currentUser.role === "admin" ||  store.getters.currentUser.role === "chef de projet" ||store.getters.currentUser.role === "client" ;
 }
 Chef(){
     return store.getters.currentUser.role === "chef de projet";
 }
 client(){
    return store.getters.currentUser.role === "client";
}
adminchef(){
    return store.getters.currentUser.role === "admin" || store.getters.currentUser.role === "chef de projet";
}
chefUser(){
    return store.getters.currentUser.role !== "admin" || store.getters.currentUser.role === "chef de projet" ||user.role !== "client"
}
};

and this store.js:

import { getLocalUser } from "./helpers/auth";

const user = getLocalUser();

export default {
state: {
    currentUser: user,
    isLoggedIn: !!user,
    loading: false,
    auth_error: null,
    customers: []
},
getters: {
    isLoading(state) {
        return state.loading;
    },
    isLoggedIn(state) {
        return state.isLoggedIn;
    },
    currentUser(state) {
        return state.currentUser;
    },
    authError(state) {
        return state.auth_error;
    },
    customers(state) {
        return state.customers;
    }
},
mutations: {
    login(state) {
        state.loading = true;
        state.auth_error = null;
    },
    loginSuccess(state, payload) {
        state.auth_error = null;
        state.isLoggedIn = true;
        state.loading = false;
        state.currentUser = Object.assign({}, payload.user, {token: payload.access_token});

        localStorage.setItem("user", JSON.stringify(state.currentUser));
    },
    loginFailed(state, payload) {
        state.loading = false;
        state.auth_error = payload.error;
    },
    logout(state) {
        localStorage.removeItem("user");
        state.isLoggedIn = false;
        state.currentUser = null;
    },
    updateCustomers(state, payload) {
        state.customers = payload;
    }
},
actions: {
    login(context) {
        context.commit("login");
    },
    getCustomers(context) {
        axios.get('/api/customers')
        .then((response) => {
            context.commit('updateCustomers', response.data.customers);
        })
    }
}
};
Answers:

Change

import {store} from './store' 

to

import store from './store'