programing

스토어가 정의되어 있지 않습니다.vue.syslog

newsource 2022. 8. 16. 23:26

스토어가 정의되어 있지 않습니다.vue.syslog

로그인 페이지를 작성했습니다.라우터가 요구를 대행 수신하여 사용자가 인증되었는지 확인합니다.스토어는 사용자의 로그인 여부를 유지하고 있습니다.

디버깅 중에 auth.debug에 들어갑니다.

"스토어가 정의되지 않았습니다."

Import에서도 @가 아닌 relative path를 시도했습니다.

라우터 코드 스니펫

      import auth from '@/services/auth';
       ...
        router.beforeEach((to, from, next) => {
      if (to.matched.some(record => record.meta.requiresAuth)) {
        if (!auth.loggedIn()) {
          next({
            path: '/login',
          });
        } else {
          next();
        }
      } else {
        next(); 
      }
    });

auth.module은 store 및 maintenate와 상호 작용하는 서비스와 같습니다.

import Vue from 'vue';
import axios from 'axios';
import VueAxios from 'vue-axios';
import store from '@/store/UserStore';

Vue.use(VueAxios, axios);

export default {
  login(credentials) {
    return new Promise((resolve, reject) => {
      Vue.axios.post('/api/authenticate', credentials).then((response) => {
        localStorage.setItem('token', response.body.token);
        store.commit('LOGIN_USER');
        resolve();
      }).catch((error) => {
        store.commit('LOGOUT_USER');
        reject(error);
      });
    });
  },
  isUserLoggedIn() {
    return store.isUserLoggedIn();
  },
};

여기 내 가게가 있다

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export default new Vuex.Store({
  strict: process.env.NODE_ENV !== 'production',
  state: {
    isLogged: !localStorage.getItem('token'),
    user: {},
  },
  actions: {

  },
  mutations: {
    /*  eslint-disable no-param-reassign */
    LOGIN_USER(state) {
      state.isLogged = true;
    },
    /* eslint-disable no-param-reassign */
    LOGOUT_USER(state) {
      state.isLogged = false;
    },
  },
  getters: {
    isUserLoggedIn: state => state.isLogged,
  },
  modules: {

  },
});

UserStore에서 내보내기 유형을 다음과 같이 변경합니다.

export default new Vuex.Store({

로 대체하다.

export const store = new Vuex.Store({

언급URL : https://stackoverflow.com/questions/47472401/store-is-not-defined-vue-js