2017-04-18 11 views
0

GETリクエスト(オブジェクトの配列)からの応答を取得し、その状態を配列 'templates'に設定しようとしています。そのようなstate.templates、:私はSETSTATEラインをコメントアウトし、ちょうど応答をログコンソールがある場合React Native this2.stateエラー

fetch('https://tiy-warmup.herokuapp.com/api/templates?token=' + 
    token) 
    .then(response => response.json()) 
    .then(response => this.setState({templates: response})) 
    // .then(response => console.log(response)) 

は、私は戻って、正しい配列を取得するので、私は私のフェッチが良好であることを知っています。私はSETSTATEラインを実行しようとすると、しかし、私はこのエラーを取得する:

Possible Unhandled Promise Rejection (id: 0): 
_this2.setState is not a function 

このエラーを歩き回ると、レンダリングにthis.state.templatesを使用することができることに解決策になりますか?

答えて

0

catchを実装していないため、このエラーが発生します。 thisがコンポーネントにバインドされていないため、this.setStateがエラーをスローしています。エラーを処理するcatchステートメントが設定されていないため、未処理の約束拒否エラーが表示されます。

+0

はありがとうを取ります!矢印機能が働いた。 –

0

Possible Unhandled Promise Rejection

あなたは、これはどちらか、フェッチ矢印関数に機能や変更を結合し使用している場合はいつでも、あなたの約束

.catch(error => { 
    console.log('There has been a problem with your fetch operation: '+ error.message); 
}); 
0

_this2.setState is not a function通常、これはコンポーネントのリファレンスではありません。デバッガを起動して、thisの参照を慎重に確認してください。この問題を解決するには、bindまたはconst self = thisを使用することをお勧めします。

はあなたを助けるかもしれないこの記事を見て、https://www.sitepoint.com/bind-javascripts-this-keyword-react/

関連する問題