无法读取未定义 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 组合 API:无法读取未定义的属性“$createElement”