vue.js - 如何将数据从我的函数传递到数据方法?
问题描述
我正在尝试将数据从我的 API 传递到data
Vue 中的方法。
data(){
return{
name:""
}
},
methods: {
getData(){
useData.data("profile", this.route.params.id).then(function(r: any){
r.data;
});
}
},
created(){
this.name=this.getData();
}
我在我的模板中显示它,如下所示:
{{name}}
问题是它不起作用。它没有显示任何错误,但也没有显示任何内容。
如果我将功能更改为getData()
:
getData(){
return "123";
}
它成功在模板中显示 123。我相信这与承诺有关。
如果我尝试name
直接在函数内部分配值getData()
,我会收到以下错误:
未捕获(承诺中)类型错误:无法设置未定义的属性“名称”
那么如何从 http 请求中获取数据并将其发送给data
方法呢?
解决方案
我通过改变解决了这个问题
从
getData(){
useData.data("profile", this.route.params.id).then(function(r: any){
r.data;
});
}
至
getData(){
useData.data("profile", this.route.params.id).then(r =>{
this.name=r.data;
});
}
我想这this
不适用于常规功能
如果有人知道是否有任何方法可以 this
在常规函数中使用,请告诉我如何使用。
推荐阅读
- powershell - Solr 7.3.1 不会启动“SSL_PORT_PROP”此时出乎意料
- python - 解析电子邮件正文
- php - 通过 PHP 从 URL 读取我是否被 PWNED JSON 值
- redux - 如果发生令牌刷新,则重新启动 API 请求队列
- forms - 如何获取 vue treeselect 值
- c# - 我们可以从单个 TFS 构建中触发多个代理/侦听器吗
- javascript - 如何在谷歌图表上实现 3d 饼图?
- python - 从稀疏数据创建 python 列表推导
- tensorflow.js - Tensorflow.js 可以用于人脸识别吗?
- c# - 为什么 C# VS2017 智能感知不能与 var 和本地函数一起使用?