当我更改组件时,如何重新定义我的减速器的初始状态

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);

您可以在组件上使用 componentWillUnmountcomponentWillMount 方法

在第一个组件上使用 componentWillUnmount

componentWillUnmount() {
  if (this.props.isMenuOpen) this.props.setBurgerMenu()
}

在第二个组件上使用 componentWillMount

componentWillMount() {
  if (this.props.isMenuOpen) this.props.setBurgerMenu()
}