【问题标题】:How to handle state across different reducers for triggering notification in react redux如何处理不同reducer的状态以触发react redux中的通知
【发布时间】:2021-08-07 06:26:13
【问题描述】:

如果某些消息通知触发,我如何将存储中的根状态从一个减速器更新到另一个减速器。我想在用户登录发生时更改商店的消息状态并希望在顶级 MESSAGE 组件上显示该消息。我想在调度 LOGIN_FAILURE 操作时从 userReducer 更改消息状态。但它正在更新 initialState.user.messages 本身的消息,但我想在 initialState.messages 中更新,而不是在 initialState.user.messages 中更新。

我该怎么做?

调度 LOGIN_FAILURE 操作。

initialState.js

createStore 中使用的rootReducer.js

userReducer.js

messageReducer.js

使用MESSAGE组件的App.js

【问题讨论】:

    标签: javascript node.js reactjs redux react-redux


    【解决方案1】:

    你可能知道每个reducer都有自己的状态,例如userReducer你使用initialState,所以

    const initialState = {
      user: {},
      messages: []
    };
    

    上面的初始状态,它只用于 userReducer,所以它只是用户的命名空间而不是共享交叉减速器,所以无论你对 userReducer 所做的任何更改都会影响它的状态,我的意思是 user: {},在如果您想将messages 更新为messageReducer,那么应该将LOGIN_FAILURE 的逻辑移动到打算影响的reducer,例如,如果您也需要将LOGIN_FAILURE 监听到userReducer,你可以这样做,但只有当你需要影响与用户状态相关的东西而不是消息状态时才应该这样做。

    【讨论】:

      猜你喜欢
      • 2018-08-09
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 2016-08-16
      • 1970-01-01
      • 2018-08-02
      相关资源
      最近更新 更多