私はReact NativeでMobXを使用しています。 Mobx Storeの状態が変更されたときに関数を呼び出すライフサイクルやメソッドがありますか?Reactネイティブ、MobX、ライフサイクル
1
A
答えて
1
componentWillReceiveProps
は、コンポーネントレベルで使用できます。さて、あなたはnotificationStore.message
などを変異させたときに
class Notification extends PureComponent<Props> {
...
public componentWillReceiveProps(nextProps: any): void {
Alert.alert('message', nextProps.message);
}
}
:
@inject('notificationStore')
@observer
class SomeContainer extends Component<Props> {
...
public render(): JSX.Element {
<Notification
message={this.props.notificationStore.message}
...
/>
}
}
と通知で:たとえば、オブザーバーコンテナは小道具を通して実際のコンポーネント(活字体で虚ユースケース)を通知します。 「Hello world」通知コンポーネントによって表示されます。
もっと直接的なアプローチが必要な場合は、コンポーネントをstoreに挿入して変更を観察してください。基本的にはあなたの活字体のインタフェースは次のようになります。あなたが見ることができるように
interface Props {
notificationStore?: any;
...
}
、ストアは常に小道具として考えられ、これは変異がcomponentWillReceiveProps
ライフサイクルイベントをトリガすることを意味しています。
私はこれを十分に明確に説明しました。あなたはcomponentDidMount
でautorunを入れて、componentWillUnmount
でそれを配置することができます
0
:
例(JSBin)
const store = observable({
data: "data"
});
setTimeout(() => {
store.data += " updated!";
}, 2000);
@observer
class App extends Component {
componentDidMount() {
this.disposer = autorun(() => {
console.log(`Data changed: ${this.props.store.data}`);
});
}
componentWillUnmount() {
this.disposer();
}
render() {
return <h1>{this.props.store.data}</h1>;
}
};
ReactDOM.render(
<App store={store} />,
document.getElementById("app")
);
関連する問題
- 1. React + mobx + openlayers 3
- 2. mobxとmobx-reactでWebpackビルドの問題
- 3. ReactネイティブReactContextライフサイクルがBEFORE_CREATEにスタックされました
- 4. React - Mobx検証入力フィールド
- 5. React Native、Androidのライフサイクルとナビゲーション
- 6. mobx-reactで@injectを使用するベストプラクティス?
- 7. React、Mobx、Firebase条件付きレンダリング
- 8. 輸出入可観測MobX React Native
- 9. MobX + Reactが私を怒らせる
- 10. RCTBridge in Reactネイティブ
- 11. ReactネイティブDRY Javascript
- 12. ReactネイティブIosPushNotificationエラー
- 13. ReactネイティブInit Hanging
- 14. ReactネイティブAndroid:app:compileDebugJavaエラー
- 15. DrawerLayoutAndroid in reactネイティブ
- 16. gRPC on Reactネイティブ
- 17. Reactネイティブのテキストオーバーフローフレックス
- 18. SplashScreen in reactネイティブ
- 19. ReactネイティブListView
- 20. MultiSelect in reactネイティブ
- 21. Clear ReactネイティブTextInput
- 22. Reactネイティブ<0.40.0
- 23. webpackを使用してバンドルからmobxとmobx-reactを除外する方法
- 24. Reactネイティブ用CIツール
- 25. Reactネイティブ依存エラー
- 26. TextInput OnChange in Reactネイティブ
- 27. Flex WebView in reactネイティブ
- 28. Nodejs + Reactネイティブ+ Axios + CORS
- 29. Reactネイティブ用のOnTouchListener
- 30. NoxエミュレータとReactネイティブ
あなたはmobx [反応]を使用することができます(https://mobx.js.org /refguide/reaction.html)メソッド –