私は数週間前からReactで作業していますが、私は非同期API呼び出しの問題に直面しています。この問題をスムーズに処理する代替方法があると読みましたが、それは 'redux-thunk'です。だから私は、NPMを使用してそれをインストールし、私は以下のように、自分の行動の作成者ではなく、減速機にこれを追加しました:ReactJS - redux-thunkがAPI関数を呼び出す理由すべてのコンポーネントをレンダリングした後
export function fetchDataSuccess(data) {
return {
type: types.FETCH_DATA_SUCCESS,
data
}
export function fetchData(url) {
return (dispatch) => {
fetch(url)
.then((response) => {
if(!response.ok) {
throw Error(response.statusText);
}
console.log(response);
return response;
})
.then((response) => response.json())
.then((data) => dispatch(fetchDataSuccess(data)))
.catch(() => dispatch(fetchHasErrored(true)));
};
}
これは私の行動の作成者であると私はfetchDataSuccessにある、「データ」と宣言しました(データ)関数、私のコンポーネントでmapStateToPropsを使用して、私のプロジェクトに3つのコンポーネントがあるとしましょう。
App.js:使用CONNECT(mapStateToProps、mapDispatchToProps)
Component_level1:Component_level2にApp.jsからデータを配信
Component_level2:がComponent_level2からデータを受信し、ボタン
Component_level2。 fetchData(API_URL) in componentDidMount()
だから、私は画面にログアウトしようとした、全体の流れは、この
App.jsウィルマウント
Component_level1ウィルマウント
Component_level2ウィルマウントのように思えた
Component_level2なかったマウント
なFetchData(API_URL)
Component_level1なかったマウント
App.jsがマウント
DIDと呼ばれるこれは、私はそう理解している流れがありますコンポーネントのライフサイクルまで。うまくいくと、console.log(応答)が表示されます。私は画面上でそれを確認し、画面にデータを出力するonClickメソッドを持つComponent_level2にボタンコンポーネントがあり、それも機能しています。
は、しかし、問題は、私は、データが私の変数に保存されているか、どこかのデータは、ユーザー
私は本当にイライラと絶望的な思いを表示することを使用する必要があるコンポーネントをレンダリングする前にしたいです。誰でも私を助けてくださいこれを動作させるには?
p.s、私がテストに使用したAPI_URLはhttp://5826ed963900d612000138bd.mockapi.io/items – moon
p.s.2です。ボタンをクリックすると、jsonデータが取得されますが、私がこのようにすると 'return(
あなたのコードが何を望んでいるのか、cDMライフサイクルでフェッチを設定してそのサイクル。それをレンダリングする前に取り出したい場合は、cWM(componentWillMount)ライフサイクルを使用してください。希望が助けてくれる –