vue 改变data的值

1,使用vue异步获取结果;
2.data设置data(){
return{
str1:'';
str2:''
}
3.methods设置函数
getdata(op){
axios.get().then(res=>{

op = res.data

})}
4,调用方法this.getdata(this.str1)无法将res.data赋值给str1,请问怎么解决?

阅读 9.7k
4 个回答

this.getdata(str1);

getdata(op){

axios.get().then(res=>{

this[op] = res.data

})}

这种写法很怪异
this.getdata(this.str1)中 传递的是this.str1的值 不是他自己

str1:'' 作为参数 是值传递
而 op =res.data 这里的op只是 arguments[0]保存的一个值而已
这里的赋值相当于给 arguments[0]赋值

试试这样赋值? 传一个变量名进去
this.$set(this.$data,op,res.data)

你是在哪里调用getdata的?我感觉可能是this的指向变了,贴你代码上来

this.getdata(this.str1) => this.str1//为空'' =>this.getdata('')
在回调里赋值,根本获取不到
''= res.data

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题