import React, { useState } from 'react'; import { ScrollView, Text, Alert } from 'react-native'; import { Space, Switch } from '@xrnjs/ui'; import Card from '_global/Card'; import styles from './style'; const EventHandling = () => { const [value1, setValue1] = useState(false); const [value2, setValue2] = useState(false); const [value3, setValue3] = useState(false); const handleChange = (newValue: boolean) => { Alert.alert('开关状态变化', `新状态: ${newValue ? '开启' : '关闭'}`); setValue1(newValue); }; const handlePress = () => { Alert.alert('开关被点击', '触发了 onPress 事件'); }; const handleBeforeChange = (newValue: boolean) => { return new Promise((resolve) => { Alert.alert('确认操作', `确定要${newValue ? '开启' : '关闭'}开关吗?`, [ { text: '取消', onPress: () => resolve(false) }, { text: '确定', onPress: () => resolve(true) }, ]); }); }; const handleSyncBeforeChange = (newValue: boolean) => { // 同步拦截:只允许开启,不允许关闭 if (!newValue) { Alert.alert('提示', '此开关不允许关闭'); return false; } return true; }; return ( onChange 事件 onPress 事件 beforeChange 异步拦截 beforeChange 同步拦截 ); }; export default EventHandling;