[英]How can redefine initial state on my reducer, when I change the component
更多细节 :
我有一个叫做header
的组件,我有一个菜单,当我在移动设备中时,我有一个汉堡菜单。
当我单击此汉堡菜单时,将状态设置为true
,菜单变为打开状态;当我单击叉号时,状态变为false
,菜单关闭。
现在的问题是:
如果我更改组件总是保存以前的状态,例如,如果菜单处于打开状态,然后单击home
,则该状态实际上为true
而在我的主页中,菜单处于打开状态,因此我不希望出现这种情况。
你有什么建议吗?
看一下代码:
// ACTION : export const setBurgerMenu = createAction( SET_BURGER_MENU, () => ({}) ); export const getBurgerMenu = () => { return dispatch => { dispatch(setBurgerMenu()); }; }; // REDUCER : // Initial state contain isOpenMenu at false const reducer = handleActions({ [SET_BURGER_MENU]: (state) => { return { ...state, isOpenMenu: !state.isOpenMenu }; }, [BREADCRUMBS_WILL_UPDATE]: (state) => { return { ...state, isWillUpdate: true }; }, [BREADCRUMBS_UPDATED]: (state) => { return { ...state, isWillUpdate: false }; }, [CLEAR_USER_DATA]: () => { return { ...initialState }; } }, initialState);
您可以在componentWillUnmount
使用componentWillUnmount
或componentWillMount
方法
使用componentWillUnmount
的第一个组件:
componentWillUnmount() {
if (this.props.isMenuOpen) this.props.setBurgerMenu()
}
使用componentWillMount
在第二部分:
componentWillMount() {
if (this.props.isMenuOpen) this.props.setBurgerMenu()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.