更多详细信息:
我内部有一个名为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);
答案 0 :(得分:1)
您可以在组件上使用componentWillUnmount
或componentWillMount
方法
在第一个组件上使用componentWillUnmount
:
componentWillUnmount() {
if (this.props.isMenuOpen) this.props.setBurgerMenu()
}
在第二个组件上使用componentWillMount
componentWillMount() {
if (this.props.isMenuOpen) this.props.setBurgerMenu()
}