我正在制作一个反应原生的应用程序。在这里,我可以单击打开模态,也可以在单击模态内部时关闭模态。但我也想在模式外部单击时关闭它。
下面是我的代码:
import React, { useState } from 'react';
import { View, Text, TouchableOpacity, Modal, TouchableWithoutFeedback, Alert } from 'react-native';
function Main({ navigation }) {
const [modalVisible, setModalVisible] = useState(false);
return (
{/* This is not working */}
<TouchableWithoutFeedback onPress={() => { setModalVisible(!modalVisible); }}>
<View>
{/* MODAL FOR LANGUAGE */}
<Modal animationType="slide" transparent={true} visible={modalVisible}>
<View>
<Text>Select Language</Text>
</View>
{/* Close modal*/}
<TouchableOpacity onPress={() => { setModalVisible(!modalVisible); }} >
<Text>English</Text>
</TouchableOpacity>
<TouchableOpacity onPress={() => { setModalVisible(!modalVisible); }} >
<Text>Hindi</Text>
</TouchableOpacity>
</Modal>
<View>
{/* Open modal*/}
<TouchableOpacity onPress={() => { setModalVisible(true); }} >
<Text>Language</Text>
</TouchableOpacity>
</View>
</TouchableWithoutFeedback>
);
}
我希望从评论中您可以看到单击时我正在打开模态,并且单击模态内部的和<Text>Language</Text>
时我能够关闭模态。<Text>English</Text>
<Text>Hindi</Text>
在我使用的模式之外单击时关闭模式<TouchableWithoutFeedback onPress={() => { setModalVisible(!modalVisible); }}>
,但这不起作用。
注意:我故意删除了所有样式部分,以便我的代码看起来很干净,并且我可以清楚地说明我想要什么。