【问题标题】:Can a Redux action affect multiple parts of the state tree?Redux 操作会影响状态树的多个部分吗?
【发布时间】:2016-04-22 20:08:47
【问题描述】:

对于影响 Redux 中状态树多个部分的操作的共识是什么?

例如:

const ADD_POST = 'POST/ADD';

function postsReducer(state = initialState, action = {}) {
    // switch ...
    case ADD_POST:
        return {
            ...state,
            ...action.result.post
        }
}

function anotherReducer(state = initialState, action = {}) {
    // switch ...
    case ADD_POST:
        return {
            ...state,
            post_id: action.result.post.id
        }
}   

我正在寻求建议:

影响 redux 存储/状态多个部分的操作

【问题讨论】:

    标签: javascript reactjs architecture redux


    【解决方案1】:

    是的,当然。这就是动作存在的全部原因:从组件的角度将发生的事情与状态变化方面实际发生的事情分开。

    【讨论】:

    • 谢谢!这个概念真的帮助我规范了我的状态结构。一直在建议使用嵌套减速器,我只是觉得增加了复杂性却没有任何收获
    【解决方案2】:

    是的,没关系。如果这就是你想要发生的事情。

    【讨论】:

    • 您能详细说明一下吗?我觉得没问题。我试图避免我看到一些人建议和暗示的“嵌套减速器”模式。嵌套的 reducer 看起来如此复杂。
    • 是的,看起来不错。如果您确实想将您的操作仅应用于状态树的一部分,但对不同的部分使用相同的 reducer,您将需要一些方法来实现这一点。您所描述的是默认情况下发生的情况。
    • 认为每次状态变化都会调用所有 reducer 真是太疯狂了。似乎 CPU 密集型
    • 嵌套reducer也没有什么复杂的。这是一个非常自然的模式,如果你使用combineReducers,你就已经在使用它了:-)。我建议观看 my free course 我解释减速器组合的地方,以及其他一些主题。
    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2018-07-23
    • 2016-04-04
    相关资源
    最近更新 更多