【发布时间】:2021-11-02 14:01:06
【问题描述】:
所以我有一个呈现模态组件的主屏幕。我使用一些状态来实现模态可见性。但是,问题是当我从模式导航到另一个屏幕然后返回主屏幕时,模式仍然打开,我不知道如何关闭它。我尝试使用 useEffect 但它没有做任何事情。有什么建议吗?
这是主屏幕。 AddButton 组件是一个简单的 TouchableOpacity,onPress 调用了 toggleModal 函数
const [isModalVisible, setIsModalVisible] = useState(false);
const toggleModal = () => {
setIsModalVisible(!isModalVisible);
};
useEffect(() => {
setIsModalVisible(false)
}, [navigation])
return (
<AddButton
title="ADD BOOK"
toggleModal={toggleModal}
/>
)
模态组件是这样的:
const ModalComponent = ({navigation, isModalVisible, toggleModal, title, author, save, onNavigate }) => {
return (
<Modal isVisible={isModalVisible}>
<View style={styles.container}>
<Text>Modal</Text>
<View style={styles.footer}>
<TouchableOpacity onPress={toggleModal}>
<Text>Cancel</Text>
</TouchableOpacity>
<TouchableOpacity onPress={() => navigation.navigate("AddBookScreen")}>
<Text>{save}</Text>
</TouchableOpacity>
</View>
</View>
</Modal>
);
};
【问题讨论】:
标签: reactjs react-native modal-dialog use-effect use-state