Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我更改组件时,如何重新定义减速器的初始状态_Javascript_Html_Reactjs_Redux_Redux Actions - Fatal编程技术网

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

Javascript 当我更改组件时,如何重新定义减速器的初始状态,javascript,html,reactjs,redux,redux-actions,Javascript,Html,Reactjs,Redux,Redux Actions,更多详情: 我有一个叫做header的组件,里面有一个菜单,当我在移动设备中时,我有一个汉堡菜单 当我点击这个汉堡菜单时,我将状态设置为true,菜单打开;当我点击一个十字时,状态变为false,菜单关闭 现在的问题是: 如果我更改组件为“始终保存以前的状态”,如果菜单打开并单击“主页”,例如,该状态实际上为“真”,在我的主页中,该菜单打开,我不希望使用此组件 你有什么建议吗 查看代码: //行动: export const setBurgerMenu=createAction 设置汉堡菜单,

更多详情:

我有一个叫做header的组件,里面有一个菜单,当我在移动设备中时,我有一个汉堡菜单

当我点击这个汉堡菜单时,我将状态设置为true,菜单打开;当我点击一个十字时,状态变为false,菜单关闭

现在的问题是:

如果我更改组件为“始终保存以前的状态”,如果菜单打开并单击“主页”,例如,该状态实际上为“真”,在我的主页中,该菜单打开,我不希望使用此组件

你有什么建议吗

查看代码:

//行动: export const setBurgerMenu=createAction 设置汉堡菜单, => {} ; 导出常量getBurgerMenu==>{ 返回调度=>{ 调度菜单; }; }; //减速器: //初始状态包含isOpenMenu为false 常数减速机=手动过滤{ [设置汉堡菜单]:状态=>{ 返回{ 状态 isOpenMenu:!state.isOpenMenu }; }, [面包屑将更新]:状态=>{ 返回{ 状态 isWillUpdate:true }; }, [面包屑更新]:状态=>{ 返回{ 状态 isWillUpdate:false }; }, [清除用户数据]:=>{ 返回{ …初始状态 }; } },初始状态 您可以在组件上使用componentWillUnmount或componentWillMount方法

使用componentWillUnmount在第一个组件上:

componentWillUnmount() {
  if (this.props.isMenuOpen) this.props.setBurgerMenu()
}
componentWillMount() {
  if (this.props.isMenuOpen) this.props.setBurgerMenu()
}
使用componentWillMount安装在第二个组件上:

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

为什么你的行为被放在方括号里?我们没有一种独特的方式来编写我们的减速机,在办公室,它是这样开发的,但我更喜欢开关/案例方法。我问这个问题是因为这可能是个问题;当它们放在方括号中时,它能正常工作吗?是的,当然,我所有的应用程序中的减速机都是这样写的:@Jonathan你能添加使用这个值的组件吗?谢谢你的回答,但我在发布20分钟后找到了解决方案。我真是个白痴,问题很简单。我必须做一个减速机,当我点击值为真时,另一个在值为假时,当我的组件被安装时,我调用假值,如果我点击真值,没有比这更简单的。。。