2017-03-29 6 views
0

私はReactJSで新しく、いくつか問題が発生しました。ReactJS TypeError:プロパティ 'setState'を読み取ることができません

また、ES6という構文についても学びました。次のコードは同じ意味です。

1.

YTSearch({key: API_KEY, term: 'nba'}, function(videos) { 
    this.setState({ videos }); 
}); 

2.

YTSearch({key: API_KEY, term: 'nba'}, (videos) => { 
    this.setState({ videos }); 
}); 

しかし、第一の方法は、このエラーを投げた

TypeError: Cannot read property 'setState' of undefined 

答えて

3
YTSearch({key: API_KEY, term: 'nba'}, function(videos) { 
    this.setState({ videos }); 
}); 

があるため、ここでthisコールバック内部doesnのエラーをスローします参照するcontext of React Componentではなく、関数そのもののコンテキストなので、setStateはここでは定義されていません。

第2の例で

YTSearch({key: API_KEY, term: 'nba'}, (videos) => { 
    this.setState({ videos }); 
}); 

あなたは反応成分のコンテキストに機能を結合することarrow機能を利用しています。同じことを行う別の方法は、bind(this)

YTSearch({key: API_KEY, term: 'nba'}, function(videos) { 
    this.setState({ videos }); 
}.bind(this)); 
+0

感謝を使用することですので、チュートリアルでは、誤って説明したようです。 –

関連する問題