Javascript 如何将React生命周期方法用于MobX?

Javascript 如何将React生命周期方法用于MobX?,javascript,reactjs,state,mobx,mobx-react,Javascript,Reactjs,State,Mobx,Mobx React,仅仅使用MobX存储是否会消除常规有状态组件的功能?目前,我正在使用componentDidUpdate访问prevState和prevProps,并根据它们的值调用其他方法。如何在MobX/React MobX存储中访问这样的生命周期方法 更具体地说,以下是我的一个生命周期函数的当前代码: componentDidUpdate(prevProps, prevState) { const currentWidth = this.state.width.window; const

仅仅使用MobX存储是否会消除常规有状态组件的功能?目前,我正在使用componentDidUpdate访问prevState和prevProps,并根据它们的值调用其他方法。如何在MobX/React MobX存储中访问这样的生命周期方法

更具体地说,以下是我的一个生命周期函数的当前代码:

componentDidUpdate(prevProps, prevState) {
    const currentWidth = this.state.width.window;
    const prevWidth = prevState.width.window;
    if (currentWidth !== prevWidth) {
        this.setState({...});
    }
}
使用MobX/MobX React,我如何有效地做同样的事情


换句话说,我如何(不使用this.state、构造函数和生命周期方法)访问Mobx存储中的prevProps和prevState?

Mobx试图解决的是组件之间共享“全局”状态的问题,例如:用户可能登录或注销,根据这一点,几个组件需要有不同的行为。MobX允许您将“状态”(登录/注销)移动到组件之外,因为它实际上是业务逻辑,而不是表示逻辑。当然,您仍然需要
this.state
this.setState
来处理特定于组件的状态,以保持存储的干净

我的意思是:MobX并没有真正取代任何东西,它是一种干净、简单的方式,可以接收新状态,而不必使用
this.state
。您仍然可以(并且将)使用react lifecycle方法对新状态做出反应(当MobX检测到状态发生变化时,将运行正常的生命周期过程),并且对于非全局状态,您仍然可以使用
this.state