仅使用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等内容?
答案 0 :(得分:0)
MobX试图解决的问题是在组件之间共享“全局”状态的问题,例如:用户可能已登录或注销,而且有些组件需要根据具体情况采取不同的行为。 MobX允许您在组件外部移动“状态”(登录/注销),因为它实际上是业务逻辑,而不是表示逻辑。当然,对于那些非常特定于某个组件的状态,您仍然需要rm -rf platforms/
cordova prepare
和this.state
来保持商店的清洁。
我的意思是:MobX并没有真正取代任何东西,将其作为一种简洁明了的方式来接收新状态而不使用this.setState
。您可以(并且将)仍然使用react生命周期方法来响应新状态(当MobX检测到状态发生变化时运行正常的生命周期过程),并且您仍然可以将this.state
用于非全局状态< / p>