如何关闭原生态的模态

HSB*_*SBP 8 reactjs react-native react-redux

我是新手,以反应原生发展.我想在反应中按下模态外部关闭模态组件.以下是我的代码.

state = {
    visibleModal : false,
};

_hideModal(){
  this.setState({
    visibleModal: true,
  })
}


render(){
    return(
        <View style={
            [styles.container,
                {backgroundColor: this.state.visibleModal ? 'rgba(47, 60, 73, 0.75)': 'white'}
            ]}>

            <Text>Text Behind Modal</Text>

            { this._renderButton('BUTTON', () => this.setState({ visibleModal: true}) ) }
            <TouchableWithoutFeedback onPress={() => {this._hideModal()}}>
            <Modal animationType={"slide"}
                   transparent={true}
                   visible={this.state.visibleModal}>

                      <View style={styles.modalContent}>
                          <Row />
                      </View>

            </Modal>
          </TouchableWithoutFeedback>
        </View>
    );
}
Run Code Online (Sandbox Code Playgroud)

}

Jig*_*hah 10

只需在Modal中添加此prop即可

onRequestClose={() => { this.visibleModal(false); } }
Run Code Online (Sandbox Code Playgroud)

它会在按下后退按钮时关闭你的模态

<Modal animationType={"slide"}
   transparent={true}
   visible={this.state.visibleModal}
   onRequestClose={() => { this.visibleModal(false); } }
>
Run Code Online (Sandbox Code Playgroud)

编辑

以上代码仅适用于Android上的文档.

对彼此而言,

您可以添加自定义按钮以关闭模态

<TouchableOpacity
    onPress={() => {
        this.setState({visibleModal: false})
    } }>
    <Image
        style={[styles.modalBackIcon]}
        source={require('../../theme/images/back-icon.png')} />
</TouchableOpacity>
Run Code Online (Sandbox Code Playgroud)