我开始使用 Vuex 进行冒险,并制作一些 auth 模块。找到了一些我试图遵循的示例,但在尝试在商店中使用 axios 时卡住了。我的商店有单独的索引、动作、吸气剂等文件。动作login在动作中有效store/index.js,但是当我把它放在store/actions.js文件中时,它说axios是未定义的。商店/index.jsimport Vue from 'vue'import Vuex from 'vuex'import axios from 'axios'// import example from './module-example'Vue.use(Vuex)/* * If not building with SSR mode, you can * directly export the Store instantiation */import state from './state'import getters from './getters'import mutations from './mutations'import actions from './actions'export default function(/* { ssrContext } */) { const Store = new Vuex.Store({ modules: { // example }, namespaced: false, getters, mutations, actions, state, // enable strict mode (adds overhead!) // for dev mode only strict: process.env.DEV, }) return Store}商店/actions.jsexport default { login({ commit }, user){ return new Promise((resolve, reject) => { commit('auth_request') axios({ url: 'http://localhost:3000/login', data: user, method: 'POST' }) .then(resp => { const token = resp.data.token const user = resp.data.user localStorage.setItem('token', token) axios.defaults.headers.common['Authorization'] = token commit('auth_success', token, user) resolve(resp) }) .catch(err => { commit('auth_error') localStorage.removeItem('token') reject(err) }) }) }}
添加回答
举报
0/150
提交
取消