2016-02-14 125 views
3

我目前使用還原還原thunk中間件。Redux,操作,授權

當談到有關行動調度控制,如:

  • 確實用戶有這個動作足夠的權限?
  • 提示用戶確認他的行爲(破壞性行動

我相信把這種控制異步操作​​()是要走的路,裏面的原因是:

  • 它會讓我的代碼DRYer(許多組件/視圖可能觸發 操作,而對於所述操作只有一個actionCreator
  • 這是應用程序中「發生某些事情」之前的最後一點。讓它感覺像是進行這種控制的一個戰略地點。

  1. 我在尋找其他終極版用戶反饋的問題(一個或多個)。我相當 有信心這個決定,但幾乎沒有反饋(和 初中開發)讓我懷疑。這是正確的方式去 授權控制使用REDX?

  2. 什麼使得授權控制器到 中間件。它會將驗證控件保存在一個地方,而不是在每個ActionCreator中複製它。
    編輯 當更深的挖掘到這種可能性,它很快就成爲挑戰,因爲中間件最初只收到(dispatch, getState)意味着授權中間件將需要「知道」被分派哪個動作(或正在使用actionCreator),這東西需要一個hacky-ish設置,並最終被證明是不可靠的。

其他景點

  • 是的,這是客戶端。是的,我們也進行服務器端檢查。
  • 我知道這些類型的控件不應該在我的商店/減速器中。他們需要是純潔的。

回答

2

我認爲你很樂意配合你的設置。 Thunk是編排程序流程的好方法。還有其他一些中間件,比如redux-saga,它有點複雜,但據我所知,你想做這樣的事情(僞代碼)?

function authorizeAndTriggerAction(forUser) { 
    return function (dispatch) { 
    return authorizeUser().then(
     action => dispatch(concreteAction(forUser)), 
     error => dispatch(notAuthorized(forPerson, error)) 
    ); 
    }; 
} 

這可以用thunk來完成。

+0

是的,這就是我們推薦的。這或者像Redux Saga這樣的複雜工作流程。 –