javascript - webpack编译错误: TypeError: __WEBPACK_IMPORTED_MODULE_1__ … is not a function

标签 javascript file-upload webpack vue.js vue-loader

所以,这是我的 Api 服务组件,我正在使用 Axios:

import api from './Api.vue';

export default {
    name: 'app-feed-service',
    methods: {
        getPosts() {
            return api.get('posts/');
        }
    }
}

和一些提要组件

import AppSinglePost from './../Feed/Post.vue';
import AppFeedService from './../../api/Feed.vue';

export default {
    name: 'app-posts',
    components: {
        AppSinglePost
    },
    data() {
        return {
            posts: []
        }
    },
    created() {
        AppFeedService.getPosts().then((res) => {
            console.log(res);
        });
    }
}

现在是错误:

TypeError: __WEBPACK_IMPORTED_MODULE_1__api_Feed_vue___default.a.getPosts is not a function

有人可以帮忙吗?

最佳答案

看起来 Feed.vue 中定义的 AppFeedService 并不是真正的组件,它只是您要调用的服务的集合。由于您已将其定义为组件,因此该组件必须在某处实例化,这在大多数情况下意味着您在另一个组件的模板 中使用它。

您可以将其定义为一个对象。

import api from './Api.js';

export default {    
    getPosts() {
        return api.get('posts/');
    }
}

您的 Api.vue 文件可能也是如此。当你定义一个实际的组件时,你只需要使用一个 .vue 文件。

然后在您的提要组件中

import AppFeedService from './../../api/Feed.js';

总而言之:.vue 文件格式用于定义单个文件组件。当您实际定义单个文件组件时,您只需要一个 .vue 文件(可能会在不同组件的 template 中使用的东西)。如果您只想要一个包含方法集合或某些状态的对象,只需使用纯 javascript 定义它即可。

关于javascript - webpack编译错误: TypeError: __WEBPACK_IMPORTED_MODULE_1__ … is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43946738/

相关文章:

java - Servlets:在哪里存储上传的文件?

php - getimagesize() vs finfo_file() 用于检测图像类型?

reactjs - 缩小/优化 NextJS 站点

javascript - AJAX 调用从我的 REST API 获取 "400 bad request"响应

javascript - 返回一个字符串,将字符串中的每个元素[0]替换为元素[1]

javascript - 从 HTML 表中提取值并将其放入数据库

javascript - react 路由器 : Failed to Navigate Route

javascript - 所有的全局变量和全局函数都是 `window`对象的成员吗?

android - 如何从 retrofit 响应中获取 JSON ARRAY 和 JSON 对象响应?

javascript - 在 Rails + Webpack 应用程序中包含 jQuery