1
我在我的redux商店中有一個步驟的數組。我的我的步驟減速通過處理的一系列動作操縱步驟列表:Redux操作和共享驗證
- ADD_STEP_REQUEST
- REMOVE_STEP_REQUEST
- MOVE_STEP_UP_REQUEST
- MOVE_STEP_DOWN_REQUEST
到目前爲止好。
我現在有一個要求,每次改變步驟的順序(或者當添加或刪除一個步驟時)都要執行一種驗證。在此驗證過程中,我需要檢查每個步驟以查看它之前的步驟是否滿足特定標準。如果沒有,我不想拒絕這些更改。我只想在步驟中設置一個isInvalid
標誌,並最終改變UI在步驟中的顯示方式。
我可以處理這增加了validateOrder()函數(即應用標誌並返回步驟)由減速器在每個case語句的結束時運行的最簡單方法:
case ADD_STEP_REQUEST: {
const amendedSteps = // add a step
return validateOrder(amendedSteps);
}
case REMOVE_STEP_REQUEST: {
const amendedSteps = // remove a step
return validateOrder(amendedSteps);
}
case MOVE_STEP_UP_REQUEST: {
const amendedSteps = // reorder steps
return validateOrder(amendedSteps);
}
case MOVE_STEP_DOWN_REQUEST: {
const amendedSteps = // reorder steps
return validateOrder(amendedSteps);
}
然而,這種感覺不對,因爲我需要在所有病例陳述中重複呼叫validateOrder
。
有沒有更好的方法來處理這個問題?