2016-12-27 44 views
0

SideBarReducerのMenuReducerの状態を変更するにはどうすればよいですか?この意味は、ユーザーがサイドバーでアクションを実行したときにメニューに警告メッセージを表示することです。ユーザーは、将来、MenuReducerの警告をポップアップさせる他のレデューサーのアクションも行います。react.js reduxの別のレデューサーの状態を変更するにはどうすればいいですか?

MenuReducer:

import actionTypes from '../action-types'; 

export const initialState = { 
    showWarning: false, 
}; 

export default function MenuReducer(state = initialState, action) { 
    switch (action.type) { 
    case actionTypes.REQUEST_REFRESH: 
     if (action.payload.unsavedChanges) { 
     return { ...state, showWarning: true }; 
     } 
    default: 
     return state; 
    } 
} 

SidebarReducer:

import actionTypes from '../action-types'; 

export default function sideBarReducer(state = initialState, action) { 
    switch (action.type) { 
    case actionTypes.REQUEST_CLOSE: 
     if (action.payload.unsavedChanges) { 
     // Change the state of MenuReducer 
     } 
    default: 
     return state; 
    } 
} 

答えて

1

あなたは(サンクミドルウェアを使用して)2つのアクションをディスパッチするアクションを作成することができます。 また、両方のレデューサーで同じアクションをキャッチし、それに応じて更新することもできます。

0

あなたは他のレデューサーから行動を起こすべきではありません、それは反パターンです。すべてのアクションは、リアクションコンポーネントライフサイクルまたはアクションクリエイターで起動する必要があります。

リデューサーは状態変更のためのものです。

関連する問題