vue组件中引入main.js中的方法报错了,提示找不到该方法

vue组件中引入main.js中的方法报错了,提示找不到该方法,请求大牛们帮我找出问题所在
([Vue warn]: Error in created hook: "TypeError: (0 , _main.xxx) is not a function")

clipboard.png

app.vue

<template>
  <div id="app">
    <Header></Header>
    <router-view></router-view>
    <Aside></Aside>
    <Footer></Footer>
  </div>
</template>

<script>
import Header from './components/base/header'
import Footer from './components/base/footer'
import Aside from './components/base/Aside'
import { getData_noheader , setItem } from './main'
export default {
  name: 'app',
  data() {
    return {
      typeList:[]
    }
  },
  created:function () {
      //this.load()
      setItem('k','1')
  },
  methods:{
      load:function () {
          var that = this
          getData_noheader('Product/GetProTwoTypeList',{
              categoryId:0
          },function (res) {
              that.typeList = res.data
          })
      }
  },
  components:{
    Header,
    Footer,
    Aside
  }
}
</script>

<style>

</style>

main.js

import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui';
import { Message , Loading  } from 'element-ui';
import router from './router/index';
import axios from 'axios';
import store from './vuex/vuex';
import i18n from './i18n/i18n';
import { SHA1 } from './SHA1';
import 'element-ui/lib/theme-chalk/index.css';
import 'element-ui/lib/theme-chalk/fonts/element-icons.ttf';
import 'element-ui/lib/theme-chalk/fonts/element-icons.woff';
import '../src/assets/main.styl'

const AppId = 'A6906809667840'
const AppKey = 'E6B8626E-131B-0800-CC3A-C0AF2165D48D'

const base_url = 'http://vimall.test.by.48wo.com/' //测试

Vue.config.productionTip = false
Vue.use(ElementUI);
new Vue({
    el: '#app',
    render: h => h(App),
    router,
    axios,
    i18n,
    store
})

function getData(url, params, success,http,error) {
    let loadingInstance = Loading.service({
        lock: true,
        text: '拼命加载中。。。',
        spinner: 'el-icon-loading',
        background: 'rgba(255, 255, 255, 0.8)'
      });
    
    var httptype = http ? http :'get'
    var value
    if(getItem('token')){
        value = {
            method: httptype,
            url: base_url + url,
            params: params,
            headers: {
                client_token: getItem('token')
            },
            timeout: 10000
        }
    }else{
        value = {
            method: httptype,
            url: base_url + url,
            params: params
        }
    }
    axios(value).then((response) => {
        if (response.data.code == 201) {
            setItem('token', '')
            router.replace({
                path: '/login',
            })
        }else if(response.data.code == 100){
            success(response.data)
        } else {
            Message({
                message:response.data.msg,
                type:'error',
            })
            if(error){
                error(response.data)
            }
        }
        loadingInstance.close()
    }).catch(function (error) {
        loadingInstance.close();
      });
}

function getData_noheader(url, params, success,http,error) {
    let loadingInstance = Loading.service({
        lock: true,
        text: '拼命加载中。。。',
        spinner: 'el-icon-loading',
        background: 'rgba(255, 255, 255, 0.8)'
      });
    
    var httptype = http ? http :'get'
    var value = {
        method: httptype,
        url: base_url + url,
        params: params
    }
    axios(value).then((response) => {
        if(response.data.code == 100){
            success(response.data)
        } else {
            Message({
                message:response.data.msg,
                type:'error',
            })
            if(error){
                error(response.data)
            }
        }
        loadingInstance.close();
    }).catch(function (error) {
        loadingInstance.close();
      });
}



function setItem(k, v) {
    window.localStorage.setItem(k, v)
}

function getItem(k) {
    return window.localStorage.getItem(k) ? window.localStorage.getItem(k) : null
}

function getHeader(){
    var now = Date.now();
    var AppKey_SHA1 = SHA1(AppId+"UZ"+AppKey+"UZ"+now)+"."+now
    return {
        "X-APICloud-AppKey":AppKey_SHA1,
        "X-APICloud-AppId":AppId
    }
}

export { getData,setItem,getItem,getHeader,getData_noheader }

目录结构

clipboard.png

阅读 11.7k
3 个回答
✓ 已被采纳新手上路,请多包涵

找到问题了,是.babelrc文件中的配置问题,把plugins配置项的transform-es2015-modules-commonjs去除就行了,应该是使用了严格模式,但是还是没找到语法错误的地方。

这种写法本来就拿不到的啊。你为什么不把函数写在APP.vue的methods里面呢。又或者是创建一个xxx.js并,把函数放里面再导出来,APP.vue引入就行了

main.js中 最后一句,方法抛出有问题。export { getData,setItem,getItem,getHeader,getData_noheader },

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题