我是Laravel的新手,我试着处理一些api调用。我正在制作一个带有管理面板的仪表板来处理用户。现在我想向我的端点添加一些数据,但是每次我想从另一个视图导入一个函数时,它都是这样的:对象(…)不是函数。我发现了这篇文章here,但它并没有解决我的问题。
TypeError: Object(…)在新商店(0.js:2993)的webpack_require (app.js:64)的resetStoreState (1.js:462),在Module../resources/js/services/category_service.js (1.js:443)的Module../resources/js/services/category_service.js(1.js:443),它不是一个函数。Module../node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/views/Categories.vue?vue&type=script&lang=js& (1.js:14) webpack_require (app.js:64)的/code>webpack_require (app.js:64)
我的代码:
<script>
//without the import here it works. as soon as I import it, it crashes
import * as createCategory from '../services/category_service';
...
methods: {
createCategory: async function() {
            let formData = new FormData();
            formData.append("name", this.categoryData.name);
            formData.append("image", this.categoryData.image);
            try {
                //const response = await categoryService.createCategory(formData);
                //console.log(response);
            } catch (error) {
                alert("error");
            }
        }
...category_service
import {http, httpFile} from './http_service';
export function createCategory(data) {
    return httpFile().post('/categories', data);
}http_service
import store from '../store';
import axios from 'axios';
export function http() {
    return axios.create({
        baseURL: store.state.apiURL
    });
}
export function httpFile() {
    return axios.create({
        baseURL: store.state.apiURL,
        headers: {
            'Content-Type' : 'multipart/form-data'
        }
    });
}和存储的供参考
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export default new Vuex.Store({
    state: {
        apiURL: 'http://localhost:8000/api',
        serverPath: 'http://localhost:8000'
    },
    mutations: {},
    actions: {}
});老实说,我不知道这里出了什么问题。
更新:
app.js
import Vue from 'vue';
import App from './App.vue';
import router from './router';
import {store} from './store';
import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap';
import BootstrapVue from 'bootstrap-vue';
Vue.use(BootstrapVue);
new Vue({
    el: '#app',
    router,
    store,
    render: h => h(App)
});发布于 2020-11-19 11:45:11
修复这个问题,这是export default的问题
在store.js中
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export const store = new Vuex.Store({
    state: {
        apiURL: 'http://localhost:8000/api',
        serverPath: 'http://localhost:8000'
    },
    mutations: {},
    actions: {}
});这里我添加了export const store
然后在app.js
import {store} from "./store";
import App from "./App.vue";
 new Vue({
    el: "#app",
    router,
    store // use here
});您需要更改所有导出语法。
import store from '../store';
import axios from 'axios';
export const  http =  function() {
    return axios.create({
        baseURL: store.state.apiURL
    });
}
export const httpFile =  function() {
    return axios.create({
        baseURL: store.state.apiURL,
        headers: {
            'Content-Type' : 'multipart/form-data'
        }
    });
}和
import {http, httpFile} from './http_service';
export const createCategory =  function(data) {
    return httpFile().post('/categories', data);
}https://stackoverflow.com/questions/64910912
复制相似问题