2017-01-17 16 views
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

+0

あなたは2つのスニペットがどのように関連しているかを示すために、コードの少しを投稿してもらえますか? – ArneHugo

+0

どのように関連しているかを反映するように自分のコードを編集しました。 – gbland777

+0

あなたは@ fumi_hwhの回答の[link](https://rnplay.org/apps/fDGs3A)を見ましたか?私にはうまくいくと思われる。それが問題の解決に役立たない場合は、問題を再現する[rnplay.org](https://rnplay.org)に実行可能な例を作成してみてください。 (編集:[自分の例を変更しました](https://rnplay.org/apps/rKeOYg)) – ArneHugo

答えて

-1

Touchable? TouchableHighlight?

TouchaleHighlightタグ以外のコードで問題は見つかりませんでした。

https://rnplay.org/apps/fDGs3A

関連する問題