2017-05-24 109 views
0

我有以下代碼:vue.js:從觀察者更新數據

export default { 
    name: '...', 
    props: ['user'], 
    data() { 
     return { 
      userName: this.user.name 
     } 
    }, 
    watch: { 
     user: (_user) => { 
      this.userName = _user.name 
     } 
    }, 
    methods: { 
     ... 
    } 
}; 

的userprop由(從服務器時,它的信息)父組件更新。如果我登錄_user變量,我有一切可用。雖然userName道具不會更新。

回答

3

由於您使用下面的脂肪箭頭功能:

user: (_user) => { 
      this.userName = _user.name 
     } 

沒有指向VUE實例,因此通過使用this.userName你是不是指的在您的數據userName屬性。

所以正常使用功能是這樣的:

user: function(_user){ 
      this.userName = _user.name 
     } 

有一個在用箭頭的功能來定義觀察者關於vuejs文檔中提到的警告。你可以看看here