あなたは、あなたの最初のデータをダウンロードするための非同期アクションと(例えば)fetchライブラリーを派遣することを可能にするredux-thunkミドルウェアを、使用する必要があります。
ので: 1)たとえば、あなたのデータをフェッチするアクションを作成:receiveYourDataはあなたの状態、例では、あなたのデータを配置するアクションです
export function fetchData() {
const options = {
method: 'GET',
headers: {
'Authorization': 'Client-ID xx' // if theres any needed
}
}
return (dispatch) => {
return fetch('yourUrl.json', options)
.then(response => response.json())
.then(data => dispatch(receiveYourData(data)))
.catch(err => console.log(err));
}
}
:
export function receiveYourData (payload = []) {
return {
type: RECEIVE_DATA,
payload: payload
}
}
もちろん、アクションハンドラを記述する必要があります。アクションハンドラは、アクションをディスパッチした後、データを自分の状態にします。
上記のような設定をしている場合は、fetchDataをcomponentDidMountライフサイクルメソッド(もちろんオプションの1つ)にディスパッチする必要があります。
特定のパーツを行う方法がわからない場合は、Exampleを参照してください。
またofficial async例が役に立つかもしれ:)
、ページのロードにページと一緒にデータを出荷考えます。これにより、ページの起動が大幅に高速化されます。ただし、データの量、バックエンドでのフェッチの所要時間、データが非同期的に読み込まれる前にユーザがアプリケーションを(部分的に)使用することが可能かどうかによっても遅くなる可能性があります。 – DDS
データがロードされていない場合、ユーザーは実際にwebappで何もできません。これがまさに私が望むものだと思います。これをどうやってやりますか?ありがとうございます – Parkicism
ちょうどバックエンドでページを準備しながらそれを取得します。スクリプトタグを使用して埋め込むことができます。ロード時に 'createStore'でロードすることができます。 Redux自体を使用して、サーバー上にデータを生成することもできます。あなたは 'store.getState()'でデータを取得して出荷することができます。 – DDS