gpt4 book ai didi

javascript - 商店未定义 vue.js

转载 作者:行者123 更新时间:2023-11-30 20:57:48 25 4
gpt4 key购买 nike

我已经创建了登录页面。路由器拦截请求并验证用户是否已通过身份验证。商店正在维护用户是否登录。

调试时我正在进入 auth.js

"store is not defined"

我还尝试在导入中使用相对路径而不是@。

路由器代码片段

      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.js 就像将与商店交互并维护状态的服务。

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({

关于javascript - 商店未定义 vue.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47472401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com