typescript 是否可以使用相同的缩减器根据其他状态值更新两个状态属性之一?

c9qzyr3d  于 2023-02-17  发布在  TypeScript
关注(0)|答案(1)|浏览(125)

假设我有一个reducer,我想根据state.propertyC的值更新state.propertyAstate.propertyB。类似于:

const conditionalReducer: CaseReducer<StateType, PayloadActionType> = (state, action) => {
    if(state.propertyC === true) {
        state.propertyA = action.payload;
    } else {
        state.propertyB = action.payload;
    }
}

这被认为是好的实践吗?或者我应该创建两个单独的reducer,并在决定运行哪个操作之前应用条件逻辑?
我试着寻找这个问题的答案,但是没有找到任何关于这个问题的具体信息。我发现很难理解在redux状态流中在哪里做什么,以及允许做什么,遵循最佳实践。
我也在应用程序的其他地方使用thunk中间件,但是我对它很陌生,但是我认为如果有更好的选择包括thunk,它可能值得一提!

8ulbf1ek

8ulbf1ek1#

这是非常好的。如果你看一下Redux风格指南,你会发现你应该把尽可能多的逻辑放进你的Reducers中

相关问题