0
私のアプリで状態が変化したときに関数を起動したいと思っています。私は状態を変更するボタンを持つモーダルを持っています。私はモーダルを閉じたときにReact Native状態変更時に関数を実行する
マイホームコンポーネント(編集済み)
...
constructor(props) {
super(props);
this.state = {
color:'red',
modalVisible: false,
}
}
...
render() {
return (
<View>
<Modal
animationType={"slide"}
transparent={false}
visible={this.state.modalVisible}
>
<View style={{marginTop: 22}}>
<TouchableOpacity onPress={()=>this.setState({color:'blue'})}>
<Text>Blue</Text>
<TouchableOpacity>
<TouchableOpacity onPress={()=>this.setModalVisible(false)}>
<Text>Blue</Text>
<TouchableOpacity>
</View>
</Modal>
<Text style={{color:this.state.color}}>
Foo
</Text>
</View>
)
...
はしかし、私のテキストの色が青に変更されません。私はモーダルバックアップを開いてからもう一度閉じるまで、赤色のままです。そのような '色'の状態は更新されていません。私はreduxと 'componentWillReceiveProps(nextProps)'を使用する前にこれに遭遇しましたが、これは私が同じコンポーネントにいるのを困惑させました。
私はドキュメントのネイティブモーダルコンポーネントを使用しています。 https://facebook.github.io/react-native/docs/modal.html
あなたは2つのスニペットがどのように関連しているかを示すために、コードの少しを投稿してもらえますか? – ArneHugo
どのように関連しているかを反映するように自分のコードを編集しました。 – gbland777
あなたは@ fumi_hwhの回答の[link](https://rnplay.org/apps/fDGs3A)を見ましたか?私にはうまくいくと思われる。それが問題の解決に役立たない場合は、問題を再現する[rnplay.org](https://rnplay.org)に実行可能な例を作成してみてください。 (編集:[自分の例を変更しました](https://rnplay.org/apps/rKeOYg)) – ArneHugo