无法读取未定义 vue 的属性“帖子”

Posted

技术标签:

【中文标题】无法读取未定义 vue 的属性“帖子”【英文标题】:Cannot read property 'post' of undefined vue 【发布时间】:2017-09-24 14:28:32 【问题描述】:

感谢您阅读我的问题。

我已经阅读了我的问题

VUE JS 2 + WEBPACK Cannot read property 'get' of undefined VUE RESOURCE

但是我的系统没有读取 Vue var :(

我有一个调用 app.vue 的 vue 组件,我需要使用 vue-resource 从我的帖子中获取数据。但是很多时候的错误是:

TypeError: Cannot read property 'post' of undefined
at VueComponent.loadingProcess

你有解决办法吗?

我的 app.vue

<script>
    var Vue = require('vue');
    //Vue.use(require('vue-resource'));
    //Vue.use();

    export default 
          data () 
                return 
                    msg: 'Hello from vue-loader! nice!',
                    user: 
            
    ,
    mounted: function () 
        this.loadingProcess();
    ,
    methods: 
        loadingProcess: function () 

            var urlPost;
            var answQSend = ...;
            var that = this;

            var jsonSend = 
                "form_data": answQSend,
                "prod_id": 3
            ;

            Vue.$http.post(urlPost, jsonSend, 
                "headers": 
                    "content-type": "application/json"
                
            )
            .then(function(response) 

            )
            ...

提前致谢!

【问题讨论】:

【参考方案1】:

首先感谢@Bert 的耐心帮助我找到了解决方案

在我的 main.js 中,我更改了这一行

var VueResource = require('vue-resource');

import VueResource from "vue-resource"

并使用

Vue.use(VueResource);

然后,在我的应用程序 vue 组件中我更改了

Vue.http.post

对于

this.$http.post

这样我们就修复了错误!

【讨论】:

【参考方案2】:

您使用的是导出默认脚本,因此您的 this 关键字无法访问 Vue 实例原始模块,但可以访问导入的对象组件。最可能的情况是,对于 require,vue-resource 仅可用于该原始模块,因此使用 import VueResource from "vue-resource",使用 es6 语法,vue-resource 库在内部模块被提升之前,它是与 Vue 实例一起评估并缓存在浏览器上。在某些情况下,人们不使用箭头函数并超出范围。 另一种选择是使用 Vue 实例本身而不是导出默认对象。看看http://voidcanvas.com/import-vs-require/,你可能会比我从中得到更多。

【讨论】:

以上是关于无法读取未定义 vue 的属性“帖子”的主要内容,如果未能解决你的问题,请参考以下文章

Vue:未捕获(承诺中)TypeError:无法读取未定义的属性'_c'

如何解决“未捕获的类型错误:无法读取未定义的属性'get'”? (Vue.JS 2)

Vue + Jest 无法读取未定义的属性“默认”

Vue 组合 API:无法读取未定义的属性“$createElement”

vue-carousel 无法读取未定义的属性“forEach”

未捕获的类型错误:无法读取未定义的属性(读取“使用”)