簡體   English   中英

如何跨不同的減速器處理 state 以觸發反應 redux 中的通知

[英]How to handle state across different reducers for triggering notification in react redux

如果某些消息通知觸發,我如何將存儲中的根 state 從一個減速器更新到另一個減速器。 當用戶登錄並希望在頂級 MESSAGE 組件上顯示該消息時,我想更改商店的消息 state。 我想在調度 LOGIN_FAILURE 操作時更改來自 userReducer 的消息 state。 但它正在更新 initialState.user.messages 本身的消息,但我想在 initialState.messages 中更新,而不是在 initialState.user.messages 中更新。

我怎樣才能做到這一點?

調度 LOGIN_FAILURE 操作。

初始狀態.js

在此處輸入圖像描述

createStore 中使用的 rootReducer.js

在此處輸入圖像描述

userReducer.js

在此處輸入圖像描述

messageReducer.js

在此處輸入圖像描述

使用 MESSAGE 組件的 App.js

在此處輸入圖像描述

您可能知道每個減速器都有自己的 state,例如對於userReducer ,您使用的是initialState ,所以

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

上面的初始 state 僅用於 userReducer,因此它僅用於用戶的命名空間,而不是共享交叉減速器,因此您對userReducer所做的任何更改都只會影響其 state 我的意思是user: {} ,如果你想要更新messageReducermessages ,因此應該將LOGIN_FAILURE的邏輯移動到打算影響的 reducer,因此,例如,如果您也需要在userReducer LOGIN_FAILURE您可以這樣做,但只有在您需要時才應該這樣做影響與用戶 state 相關的內容,而不是消息 state。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM