2017-03-16 5 views
0

コードは次のとおりです。私は単にAxiosを使用して取得し、その応答を状態に設定する必要があります。 ES6の矢印機能を使用Axios React - 状態を設定していない、何が間違っていますか?

エクスプレスとノード経由でjsonを提供しているローカルホストからのブラウザのスクリーンショットです。

screenshot

そして、私のエラー - それは私が今、時間のこの時にしてきたことを認めざるを得悲しいですか?

コンパイルに失敗しました。 ./src/App.js 構文エラーで

エラー:予期しないトークン、期待、(午後03時26分)

13 |  axios.get(`127.0.0.1:8000/api/todos/`) 
    14 |  .then(res => { 
> 15 |   this.setState({res.data}); 
    |       ^
    16 |  }); 
    17 | } 
    18 | 

Error 
@ ./src/index.js 13:11-27 
+0

axiosの成功コールバックで 'console.log(res.data)'できますか?また、 'render()'に状態を記録していますか? –

答えて

1

私はあなたが戻ってあなたのAPIから取得しているものを推測しているが、配列でありますToDosのその場合は、次のようにする必要があります。

this.setState({todos: res.data}); 

setStateコールではオブジェクトが必要です。オブジェクトを作成するときには、各プロパティに名前と値を付ける必要があります。あなたがそれをやっているように、あなたはあなたの財産に名前をつけていません。おそらくあなたは、このようなコードを見てきましたし、それが混乱を引き起こしている:

let name = "John"; 
let obj = {name}; 

ES6で、彼らはあなたの変数名はまた、あなたのプロパティ名として名前であることを起こる場合は機能を追加しましたので働く理由は、 {name: name}重複は省略できます。しかし、あなたのケースでは、A)resのネストされたプロパティなので、トリックは機能しません。B)todosとしたいとします。

+0

BFreeさん、ありがとうございました。さて、私はまだコンソールにjsonデータを記録していません。私の配列はまだ空です:/ noobを助けてください – Will

+0

もう一度おねがいします、私はあなたの指針を使用して動作させることができました – Will

関連する問題