2017-10-17 11 views
0

ReactとReduxライブラリを使用してアプリケーションを作成しています。Redux状態からの一括CRUD操作

フロントエンドでは、我々は例えば、ユーザ に削除/ 車のブランドを追加できるようにするコンポーネントリアクトています

bob: Toyota/Nissan/Chevrolet 
tony: Toyota/BMW/Audi 

を各ブランドはいくつかのカスタムパラメータがあり、車ブランドのようにのいずれかになります

  • を変形
  • を追加しました
  • は、特定のユーザーからの を削除し

私たちは、各ユーザーのためのブランドの現在のリストが含まれReduxの状態ています、私たちは、GET/POSTを受け入れRESTfulなエンドポイントをバックエンドで

{ 
    brands_per_user: 
    { 
     bob: [Toyota,Nissan,Chevrolet], 
     tony: [Toyota,BMW,Audi], 
    } 
} 

を持っています/ PUT/DELETE操作:

{toyota,nissan,chevrolet} -> /api/users/bob/  
{toyota,bmw,audi} ->   /api/users/tony/ 

我々が持っている保存することができますが、OUに現在のReduxの状態を保存することができますボタン rバックエンド。 を保存すると、各ユーザーの車両を追加/変更/削除するために必要なCRUD操作が開始されます。

Reduxでこれを達成するための一般的で簡単な方法はありますか?

厄介なの一種である我々の現在のアプローチは、Reduxの状態でキーの3種類を作成することです:

{ 
    brands_per_user: 
    { 
     bob: { 
      added: [Toyota, Chevrolet] 
      modified: [Nissan] 
      deleted: [Audi] 
     }, 
     tony: { 
      added: [Toyota,Audi] 
      modified: [BMW] 
      deleted: [Nissan] 
     }, 
    } 
} 

我々は保存ボタンを押したら、のそれぞれに対してCRUD操作をトリガーセクションは、,修飾およびを加えた。 このアプローチは、1つのコンポーネントの場合にうまく機能します。 私たちの主な問題は、このユニークなボタンをクリックすると、複数のコンポーネントを保存する必要があることです。

Googleのアプローチを簡略化するためのご提案はありますか?

答えて

0

あなたが望むものを達成するにはいくつかの方法があります。アクションクリエータからの複雑な(複数のステップ)非同期APIコールを処理したい

  • redux-thunkアクションの作成者は約束(またはチェーン-約束を)戻すことができます
  • redux-sagaコルーチンに
を使用して、複雑な非同期制御フローを許可します。これらはそれで助けることができる2つの著名なオプション、です