2016-07-12 5 views
1

私は、ロードやエラー状態のようなものをどこに保存すべきかを理解しようとする際に問題があります。エラーや読み込みを店舗や州に保存する必要がありますか?

私はマウント時にサーバーからデータを取得する反応コンポーネントがあるとします。私がやっていることは、非同期要求の結果に応じてFETCH_SOME_DATA_SUCCESSまたはFETCH_SOME_DATA_FAILUREをディスパッチするミドルウェアのおかげで、非同期部分を処理するアクションFETCH_SOME_DATAをディスパッチすることです。

は今、私がやりたいことは、私がデータをフェッチしていますので、私は私がロードされた何かを知っている何かを必要としながら、ユーザーに何かが起こっている示しています。私は減速機を私のFETCH_SOME_DATAアクションに反応させ、isLoading値をトグルするために私の店を更新することができたと思うが、ここに私が問題を抱えている場所がある:私には、これは店舗内ではなくコンポーネントの状態であるべきである。

私はそれが奇妙かもしれないと思います。理由は次のとおりです。ブログの最後の5つの記事とリスト全体(ページ番号)を表示しているとします。ユーザーは私の全リストで「もっと記事を見る」をクリックします...

本当に同じエラーがあります。私のニュースフェッチが失敗したとしましょう。私は両方のコンポーネントにエラーを表示させたくありません。それらは独立していなければなりません。各コンポーネントはデータを取得し、それに応じてエラーに対応する必要があります。

私は明確であることを望む...私は主題について強い意見を持っていると思うが、誰もが違った考えをするようだが、私は理由を理解していない。あなたは私に "一時的なデータ"を保存する場所と理由を説明してくれることを願っています。

ありがとうございます!

+0

正直なところ、コンポーネントは理由のために独自の状態を持っています。何かをリクエストしている場合は、ローディングビューをいくつか表示している状態をローカルに設定することができます。リクエストが来たら(要求のデータが入っている小道具が埋め込まれているので知っています)、状態を読み込み中。 –

答えて

0

reduxpriciplesのいずれかは、真実の単一の情報源を持っているということです。あなたのアプリは1つだけの状態を持ち、この状態はストアによって管理されます。あなたの状態には、サーバーから取得されたデータだけでなく、UIの現在のステータスに関する情報も含まれます。したがって、現在アクティブな非同期要求のローディングインジケータをレンダリングする場合、この情報はコンポーネントではなく状態に格納されます。

+0

私の問題は、アプリケーション状態の一部として 'isLoading'と' errors'データを見ることができないということです。私にとっては、一時的な表示データだけです。 :/ – nseptier

0

ポストまたは各ポストのリストを個別に取得している場合でも、店舗では何が起こったかを反映する責任があります。データを取得する際に多少の誤差がある場合、あなたはあなたの記事一覧減速に、または個別に各ポスト項目の「状態」フラグを「エラー」に設定することができます。

あなたのコンポーネントは、現在の状態に応じてユーザーに何かを表示する責任があります。 PostListコンポーネントは、店舗から受け取った小売り品を持ち、エンドユーザーに有用な情報を表示することができます。個々の投稿ごとに同じことが起こります。可能なUI状態の1つはエラー状態です。そのため、エンドユーザーにエラーを表示させるために、コンポーネントのUI状態を定義するプロペラが必要です。

関連する問題