更多细节 :
我有一个名为header
的组件,我有一个菜单,当我在移动设备中时,我有一个汉堡菜单。
当我点击这个汉堡菜单时,我在true
设置状态,菜单变为打开,当我点击十字架时,状态变为false
,菜单关闭。
现在的问题是:
如果我改变组件是保存总是以前的状态,如果菜单打开并点击home
例如,状态它实际上在true
和我家的菜单打开,我不想要这个comportement。
你有什么建议吗?
看代码:
// 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
或componentWillMount
方法
在第一个组件上使用componentWillUnmount
:
componentWillUnmount() {
if (this.props.isMenuOpen) this.props.setBurgerMenu()
}
在第二个组件上使用componentWillMount
:
componentWillMount() {
if (this.props.isMenuOpen) this.props.setBurgerMenu()
}