2017-08-24 10 views
0

私のvue.jsプロジェクトでは、配列データをaxiosで取得して、bookList変数に代入しますが、失敗したbookListは[]と同じですが、どうして?aixos応答データはVueインスタンスのデータに割り当てられません

export default { 
... 
data() { 
    return { 
    bookList: [] 
    } 
}, 
mounted: function() { 
    this.$nextTick(function(){ 
    this.viewBooks(); 
    }); 
}, 
methods: { 
    viewBooks: function() { 
    axios.get('/books.json') 
     .then(res=>{ 
     this.bookList = res.data.bookList; 
     }) 
     .catch(error=>{ 
     console.log(error); 
     }); 
    } 
} 
+0

''はconsole.log(res.data.bookList)何戻りますか? – thanksd

+0

は正しいデータを返します。 –

+0

あなたのコードは動作するので(https://jsfiddle.net/k85pnp29/1/)、含まれていないコードには何か問題があるはずです – thanksd

答えて

0

コールバックは異なるスコープにある...これは

methods: { 
    viewBooks: function() { 
     let self = this; 
     axios.get('/books.json') 
      .then(res=>{ 
       self.bookList = res.data.bookList; 
      }) 
      .catch(error=>{ 
       console.log(error); 
      }); 
    } 

を動作するはず異なった答えもありますhere

+0

ありがとう。私は試して、 "これは" vueのインスタンスに私はES6の標準で矢印の機能を使用するバインドので、問題はまだ存在する。 –

+0

彼のコールバックは問題ありません。矢印関数はレキシカルスコープを取得します。 – Bert

+0

ええ、私はリンクされた質問 – Murwa

関連する問題