为了账号安全,请及时绑定邮箱和手机立即绑定

导入依赖项在一个文件中有效,但在另一个文件中无效

导入依赖项在一个文件中有效,但在另一个文件中无效

MMMHUHU 2021-12-23 15:13:45
我开始使用 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)        })    })  }}
查看完整描述

2 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

在应用程序入口点(app.js 或类似的)定义 axios globaly:

global.axios = require('axios')


查看完整回答
反对 回复 2021-12-23
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

import axios from 'axios'

那应该只在 actions.js 文件中,因为那是你使用它的地方。是的,您需要在每个文件中单独导入它或使用全局变量。



查看完整回答
反对 回复 2021-12-23
  • 2 回答
  • 0 关注
  • 200 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号