本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

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

发布于2023-09-25 20:28     阅读(219)     评论(0)     点赞(7)     收藏(4)


更多细节 :

header我有一个名为inside 的组件,我有一个菜单,当我在移动设备中时,我有一个汉堡菜单。

当我单击这个汉堡菜单时,我设置了一个状态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);


解决方案


您可以在组件上使用 thecomponentWillUnmount或 the方法componentWillMount

在第一个组件上使用componentWillUnmount

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

在第二个组件上使用componentWillMount

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



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.qianduanheidong.com/blog/article/531595/581348fbd47a2f4024fc/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

7 0
收藏该文
已收藏

评论内容:(最多支持255个字符)