2017-09-23 10 views
1

これは私がやろうとしていることですが、基本的にはOpen Modalボタンをクリックしてモーダルを開き、モーダル内のClose Modalボタンをクリックして閉じます。下の2つの写真は、両方のケースがどのように見えるかです。iPhoneのLayoutAnimationでモーダルが動作しない

これは私のコードです:予想通りIOSシミュレータ上で動作しているとき

export default class App extends Component { 
     constructor(props) { 
      super(props); 
      this.state = { 
       showModal: false 
      }; 
     } 

     componentWillUpdate() { 
      if(PlatForm.OS === 'android') { 
       UIManager.setLayoutAnimationEnabledExperimental(true); 
      } 
      LayoutAnimation.easeInEaseOut(); 
     } 

     render() { 
      return (
       <View style={{ ... }}> 
        <TouchableOpacity onPress={() => this.setState({ showModal: true })}> 
         <Text style={{ ... }}> 
          Open Modal 
         </Text> 
        </TouchableOpacity> 
        <Modal visible={this.state.showModal} animationType='slide'> 
         <View style={{ ... }}> 
          <TouchableOpacity onPress={() => this.setState({ showModal: false })}> 
           <Text style={{ color: 'white', fontSize: 20 }}> 
            Close Modal 
           </Text> 
          </TouchableOpacity> 
         </View> 
        </Modal> 
       </View> 
      ); 
     } 
    } 

すべてが動作しますが、iPhone上で動作しているときに問題が上昇します。 Close Modalを押すと、モーダルが0.5秒間消えてから再び開き、今度はClose Modalボタンが機能しません。私はモーダルを再閉じることができません。私ができるのは、プロジェクトを再構築することだけです。私はcomponentWillUpdate()を削除する場合しかし、それは私がこれが反応ネイティブの最近のバージョンで導入されたバグであると信じて、シミュレータ上やiPhone

When modal is closed

When modal is open

答えて

1

の両方で、再び動作します。あなたの最善の策は、今のところLayoutAnimationを無効にすることです。理想的ではない...私は知っている。

Githubに関するディスカッション:https://github.com/facebook/react-native/issues/16182

関連する問題