在我网站的主页上,您可以单击一个菜单按钮,该按钮会触发切换菜单的方法。这会将状态从menuOpen
从false
更改为true
。
在另一个页面上,我点击一个“后退”按钮,它应该转到主页路径,但是在页面加载时打开此菜单而不是我点击。目前我只有:
handleBack(){
App.navigate('/');
}
我可以import
组件并调用其方法吗?或者我可以设置一个新的React路由器路由,以某种方式执行状态更改?或者还有另一种方法吗?
答案 0 :(得分:1)
如果您需要该方案,请将状态值传递给父组件,该组件是“智能组件”管理哑组件。或者你可以使用'flux'/'redux'。
答案 1 :(得分:1)
Redux会有所帮助,但由于我猜测你没有使用那个OR,你不想重构整个应用程序来设置这个布尔值,我建议使用高阶分量。
例如,您可以像这样定义一个更高阶的组件(想想超类):
409 (CONFLICT)
然后,在常规组件中,您只需使用更高阶的组件包装它。因此,如果以前,您使用ES6并导出组件,如下所示:
export function menuToggler(ComposedComponent) {
return class extends React.Component {
toggleMenuBoolean() {
// code here
},
render() {
return <ComposedComponent toggleMenuBoolean={toggleMenuBoolean} {...this.props} />
}
};
}
然后会变成:
export default MyComponent;
从那里,您只需在props上调用它,就可以从高阶组件包装的任何组件调用此export default menuToggler(MyComponent);
函数:
toggleMenuBoolean
等
更多阅读: