2017-01-04 11 views
0

私は、react reduxを使用して多くのCRUDを使用してダッシュボードアプリを構築していますので、データベースの各コレクションには独自のページがあります。レスキューレックスを使用したCRUDのロットのコーディングスタイル

問題は、私はアクション、減速、および一定のファイルになるだろうそれらのそれぞれのためのものであり、それらのそれぞれは、のような同様の作用がフェッチ持っfetchSuccess、fetchError、挿入、insertSuccess、insertError、削除、removeSuccess、removeErrorます、clearInsertError、clearRemoveError。 これは正しい方法ですか?異なるファイルに定数を繰り返し書き込む必要があるので、実際に効率的ではないと感じています。

答えて

0

一般的なアプローチは、1つのcollectionsレデューサーを持ち、コレクション名を引数とするアクション(例:GET_COLLECTION)その名前の下にあるコレクションをキーとします。その後、定数を1つのファイルに減らすことができます。このファイルは、コレクションを文字列として、エンドポイントのURLのサブルートとしてリストします。

たとえば、/api/cars//api/tyres/で利用できるCarsオブジェクトとTiresのコレクションがあるとします。私たちは、すべての車を取得したい場合があります

const state = { 
    collections: { 
     CARS: [/*list of cars*/], 
     TYRES: [/*list of tyres*/], 
    } 
} 

:あなたは、フルコレクションの減速のようなものを見えるかもしれ状態で保存した場合、その後CARS = 'cars/'TYRES = 'tyres/'、およびとしてこれらのルートのための定数を定義することができ、我々はgetCollection(CARS)ようなものを使用でき、レジューサーが結果をstate.collections[CARS]の下に保管することを期待する必要があります。

EDIT:に関する回答 - おそらくresponseitems -

を応答状態を保存するのではなく、各コレクションを格納する配列(またはリスト)を使用して、あなたの代わりに2つのキーでオブジェクトを使用することができます。 responseオブジェクトは、コレクションを取得するのと同じアクションで更新する必要があります。要求が送信されると「PENDING」に設定され、応答が成功すると「SUCCESS」に設定され、応答が成功すると「FAILED」に設定されます。リクエストが失敗します。要求が失敗した場合は、これもエラーを格納する場所になります。

もう1つの共通のパターンは、上に示したようにレデューサー構造を維持し、応答状態用に別のレデューサーを作成することです。この場合も、コレクション・レデューサーと同じアクションに応答し、各コレクションの応答状態をオブジェクトに保管します。ここで、要求およびエラーに関する情報を保持できます。

+0

ご意見ありがとうございました。異なる状態がある可能性があるため、コレクションのエラー、読み込み、およびその他の状態はどのようにコレクションに依存しますか? – Hakutsuru

+0

上記の編集をご覧ください:) – Barnabus

関連する問題