繁体   English   中英

更换组件时,如何在减速机上重新定义初始状态

[英]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使用componentWillUnmountcomponentWillMount方法

使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM