Reactjs 对来自单独组件的React类使用方法

Reactjs 对来自单独组件的React类使用方法,reactjs,ecmascript-6,react-router,Reactjs,Ecmascript 6,React Router,在我的网站主页上,您可以单击一个菜单按钮,该按钮触发一个切换菜单的方法。这会将状态从menuOpen从false更改为true 在另一个页面上,我单击一个“后退”按钮,它应该转到主路线,但在页面加载后打开此菜单,而不是单击时打开。目前我所拥有的是: handleBack(){ App.navigate('/'); } 我可以导入组件并调用其方法吗?或者我可以设置一个新的React路由器路由,以某种方式执行状态更改吗?或者有其他解决方法吗?如果需要这种情况,请将状态值传递给父组件,该父组件

在我的网站主页上,您可以单击一个菜单按钮,该按钮触发一个切换菜单的方法。这会将状态从
menuOpen
false
更改为
true

在另一个页面上,我单击一个“后退”按钮,它应该转到主路线,但在页面加载后打开此菜单,而不是单击时打开。目前我所拥有的是:

handleBack(){
   App.navigate('/');
}

我可以导入组件并调用其方法吗?或者我可以设置一个新的React路由器路由,以某种方式执行状态更改吗?或者有其他解决方法吗?

如果需要这种情况,请将状态值传递给父组件,该父组件是“智能组件”管理哑组件集。或者,您可以使用“flux”/“redux”。

如果需要这种情况,请将状态值传递给父组件,该组件是一个“智能组件”管理哑组件集。或者您可以使用“flux”/“redux”。

redux会有所帮助,但因为我猜您没有使用它,或者您不想重构整个应用程序来设置这个布尔值,所以我建议使用更高阶的组件

例如,您可以定义一个高阶组件(想想超类),如下所示:

export function menuToggler(ComposedComponent) {

    return class extends React.Component {
        toggleMenuBoolean() {
            // code here
        },
        render() {
            return <ComposedComponent toggleMenuBoolean={toggleMenuBoolean} {...this.props} />
        }
    };
}
export default MyComponent;
它将成为:

export default menuToggler(MyComponent);
从那里,您可以通过在道具上调用由高阶组件包装的任何组件来调用此
toggleMenuBoolean
函数:

this.props.toggleMenuBoolean(false)

更多阅读:


Redux会有帮助,但我猜您没有使用它,或者您不想重构整个应用程序以设置这一布尔值,因此我建议使用更高阶的组件

例如,您可以定义一个高阶组件(想想超类),如下所示:

export function menuToggler(ComposedComponent) {

    return class extends React.Component {
        toggleMenuBoolean() {
            // code here
        },
        render() {
            return <ComposedComponent toggleMenuBoolean={toggleMenuBoolean} {...this.props} />
        }
    };
}
export default MyComponent;
它将成为:

export default menuToggler(MyComponent);
从那里,您可以通过在道具上调用由高阶组件包装的任何组件来调用此
toggleMenuBoolean
函数:

this.props.toggleMenuBoolean(false)

更多阅读:


设置工作js小提琴。那么,我们可能会帮助你。设置工作js小提琴。那么,我们可能会帮助你。