2017-04-03 10 views
1

MobXストアのみを使用すると、通常のステートフルコンポーネントの機能が削除されますか?現在、私はcomponentDidUpdateを使用してprevState & prevPropsにアクセスし、その値に基づいて他のメソッドを呼び出しています。 MobX/React MobXストア内のライフサイクルメソッドにアクセスするにはどうすればよいですか?MobXでリアクションライフサイクルメソッドを使用するにはどうすればよいですか?

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を非グローバル状態に使用することができます。

関連する問題