首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel,Vue:Object(…)不是一个函数

Laravel,Vue:Object(…)不是一个函数
EN

Stack Overflow用户
提问于 2020-11-19 11:38:34
回答 1查看 1.2K关注 0票数 0

我是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)

我的代码:

代码语言:javascript
复制
<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

代码语言:javascript
复制
import {http, httpFile} from './http_service';

export function createCategory(data) {
    return httpFile().post('/categories', data);
}

http_service

代码语言:javascript
复制
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'
        }
    });
}

存储的供参考

代码语言:javascript
复制
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

代码语言:javascript
复制
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)
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-19 11:45:11

修复这个问题,这是export default的问题

在store.js中

代码语言:javascript
复制
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

代码语言:javascript
复制
import {store} from "./store";
import App from "./App.vue";
 new Vue({
    el: "#app",
    router,
    store // use here
});

您需要更改所有导出语法。

代码语言:javascript
复制
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'
        }
    });
}

代码语言:javascript
复制
import {http, httpFile} from './http_service';

export const createCategory =  function(data) {
    return httpFile().post('/categories', data);
}

参考链接How can I export all functions from a file in JS?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64910912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档