คอมโพเนนต์ Modal ช่วยในการแสดงมุมมองเนื้อหาเหนือเนื้อหา UI ของคุณ
ส่วนประกอบโมดอลพื้นฐานมีดังนี้ -
<Modal animationType="slide" transparent={true} visible={modalVisible} onRequestClose={() => { Alert.alert("Modal has been closed."); }}> Your Content Here</Modal>
ในการทำงานกับองค์ประกอบ Modal คุณต้องนำเข้าก่อนดังนี้ −
import { Modal } from "react-native";
คุณสมบัติพื้นฐานของ Modal Window มีดังนี้ -
Sr.No | อุปกรณ์ประกอบฉาก &คำอธิบาย |
---|---|
1 | ประเภทแอนิเมชั่น คุณสมบัตินี้จัดการแอนิเมชั่นสำหรับการแสดงหน้าต่างโมดอล เป็น enum ที่มีค่าสามค่า −slide, fade และ none |
2 | onDismiss คุณสมบัตินี้ใช้ฟังก์ชันที่จะถูกเรียกเมื่อปิดหน้าต่างโมดอล |
3 | onOrientationChange ฟังก์ชันการโทรกลับที่ถูกเรียกเมื่อมีการเปลี่ยนแปลงการวางแนวอุปกรณ์เมื่อแสดงหน้าต่างโมดอล |
4 | ออนโชว์ ฟังก์ชันจะถูกส่งผ่านเป็นค่า prop ที่เรียกเมื่อหน้าต่าง modal ปรากฏขึ้น |
5 | รูปแบบการนำเสนอ คุณสมบัตินี้จัดการการแสดงผลของหน้าต่างโมดอล ค่าที่ใช้ได้คือ fullScreen,pageSheet, formSheet และ overFullScreen |
6 | โปร่งใส อุปกรณ์ประกอบฉากนี้จะตัดสินใจให้มุมมองที่โปร่งใสหรือเติมเต็มมุมมองทั้งหมดสำหรับหน้าต่างโมดอล |
7 | มองเห็นได้ คุณสมบัตินี้จะตัดสินว่าหน้าต่างโมดอลของคุณสามารถมองเห็นได้หรือไม่ |
ตัวอย่างที่ 1:การแสดงหน้าต่างโมดอล
ในการทำงานกับองค์ประกอบ Modal คุณต้องนำเข้าก่อนดังนี้ −
import { Modal } from "react-native";
ในการแสดงหน้าต่างโมดอล คุณสามารถเลือกแอนิเมชั่นที่คุณต้องการให้แสดงได้ ตัวเลือกเป็นแบบสไลด์ จาง และไม่มี ในตัวอย่างด้านล่าง เราต้องการแสดงหน้าต่างโมดอลอย่างง่ายพร้อมข้อความและปุ่มดังที่แสดงด้านล่าง −
<Modal animationType="slide" transparent={true} visible={isVisible} > <View style={styles.centeredView}> <View style={styles.myModal}> <Text style={styles.modalText}>Modal Window Testing!</Text> <Button style={styles.modalButton} title="Close" onPress={() => {setModalVisiblility(false); }}/> </View> </View> </Modal>
ตัวแปร isVisible ถูกกำหนดให้กับคุณสมบัติที่มองเห็นได้ เป็นเท็จโดยค่าเริ่มต้น กล่าวคือ หน้าต่างโมดอลจะไม่แสดงตามค่าเริ่มต้น isVisible คุณสมบัติเริ่มต้นดังแสดงด้านล่าง -
const [isVisible, setModalVisiblility] = useState(false);
setModalVisiblility จะอัปเดตตัวแปร isVisible จากเท็จเป็นจริงและในทางกลับกัน
ปุ่มปิดที่กำหนดไว้ภายในคอมโพเนนต์
ในการแสดงหน้าต่างโมดอลจะมีปุ่มอยู่ด้านนอกองค์ประกอบ
<View style={styles.centeredView}> <Modal animationType="slide" transparent={true} visible={isVisible} > <View style={styles.centeredView}> <View style={styles.myModal}> <Text style={styles.modalText}>Modal Window Testing!</Text> <Button style={styles.modalButton} title="Close" onPress={() =>{setModalVisiblility(false); }}/> </View> </View> </Modal> <Button title="Click Me" onPress={() => { setModalVisiblility(true); }} /> </View>
นี่คือรหัสการทำงานที่แสดง/ซ่อนหน้าต่างโมดอล
import React, { useState } from "react"; import { Button, Alert, Modal, StyleSheet, Text, View } from "react-native"; const App = () => { const [isVisible, setModalVisiblility] = useState(false); return ( <View style={styles.centeredView}> <Modal animationType="slide" transparent={true} visible={isVisible} > <View style={styles.centeredView}> <View style={styles.myModal}> <Text style={styles.modalText}>Modal Window Testing!</Text> <Button style={styles.modalButton} title="Close" onPress={() =>{setModalVisiblility(false); }}/> </View> </View> </Modal> <Button title="Click Me" onPress={() => { setModalVisiblility(true); }} /> </View> ); }; const styles = StyleSheet.create({ centeredView: { flex: 1, justifyContent: "center", alignItems: "center", marginTop: 22 }, myModal: { width:200, height:200, margin: 20, backgroundColor: "white", borderRadius: 20, padding: 35, alignItems: "center", shadowColor: "#000", shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.30, shadowRadius: 4, elevation: 5 }, modalText: { marginBottom: 20, textAlign: "center" }, modalButton: { marginBottom: 50, } }); export default App;
ผลลัพธ์