Vue.js无法更改方法中的数据值

时间:2018-03-30 09:20:03

标签: firebase vue.js

任何人都可以帮助我,为什么我无法在方法中更改数据值?

subprocess.TimeoutExpired

"的console.log"正在工作,我可以从Firestore获得价值,但为什么" name"不会改变吗?

1 个答案:

答案 0 :(得分:1)

this将不再在function(){}中引用Vue实例,因为此类函数声明绑定了自己的this

因此,您可以将this保存到另一个变量1st中,并在function(){}中使用它。

methods: {
  firebase: function() {
    var docRef = db.doc("test/testdoc");
    var _this = this; // save it in a variable for usage inside function
    docRef.get().then(function(doc) {
        _this.name = doc.data().name;    //this one not working
      console.log(doc.data().name);   //just to test wether I can get data from Firestore
    })
  }
}

或者,您可以使用()=>{}之类的箭头功能。箭头函数不绑定自己的this。但它还是not supported in some browsers