2017-10-17 83 views
0

我們正在使用React和Redux庫編寫應用程序。Redux狀態下的批量CRUD操作

在前端,我們有一個陣營組件,允許添加/刪除汽車品牌用戶 例如:

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

每個品牌都有一些自定義的參數,從而使汽車品牌可以是:

  • ADDED
  • 改性
  • REMOVED 從一個特定的用戶

我們已經包含的品牌,爲每個用戶當前列表中的終極版狀態:

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

在後端,我們有接受GET/POST的RESTful端點/ PUT/DELETE操作:

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

我們有一個保存按鈕可允許保存當前Redux的狀態歐後端。 因此,當按下保存時,必須觸發必要的CRUD操作,以便APPEND/MODIFY/REMOVE每個用戶的車輛。

有沒有一種流行的,簡單的方法來實現這個Redux?

我們目前的做法,這是一種很麻煩是造成3種在終極版狀態鍵:

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

一旦我們打保存按鈕,我們觸發CRUD操作爲每個部分增加了,修改刪除。 這種方法適用於單個組件的情況。 我們的主要問題是,我們有多個組件必須保存點擊這個獨特的保存按鈕。

您有任何建議可以簡化我們的方法嗎?

回答

0

有幾種方法可以實現你想要的。您想要處理動作創建者的複雜(多步驟)異步API調用。這是兩個突出的選項,可以與幫助:

  • redux-thunk允許創作者的行動返回的承諾(或鏈接-承諾)
  • redux-saga這使得複雜的異步控制流使用的協同程序