2017-04-03 38 views
1

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

更具体地说,这里是我的我当前的代码看起来像我的生命周期功能之一:

componentDidUpdate(prevProps, prevState) { 
    const currentWidth = this.state.width.window; 
    const prevWidth = prevState.width.window; 
    if (currentWidth !== prevWidth) { 
     this.setState({...}); 
    } 
} 

如何使用MobX/MobX阵营做能有效地做同样的事情?

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

回答

0

MobX试图解决的问题是组件之间共享'全局'状态的问题,例如:用户可以登录或注销,并且需要根据不同的组件行为。 MobX允许你在组件之外移动'状态'(登录/注销),因为它实际上是业务逻辑,而不是表示逻辑。当然,您仍然需要this.statethis.setState来处理那些对组件非常具体的状态,以保持您的商店清洁。

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

相关问题