我试图阻止用户在 React Native 中录制视频时通过 Android 后退按钮或手势返回。根据React Navigation 的文档,它应该使用beforeRemove事件侦听器进行处理。但是返回时该事件永远不会被触发。
我尝试过blur,虽然它被解雇了,但由于此事件没有preventDefault()方法,因此在这种情况下无法使用。
反应导航 - v5.x
反应本机 - 0.63.2
这是我试图实现的屏幕的示例代码
const VideoCapturePage = ({navigation}) => {
const [isRecording, setIsRecording] = useState(false);
useEffect(() => {
navigation.addListener('beforeRemove', (e) => {
if (!isRecording) {
return;
}
e.preventDefault();
Alert.alert(
'Unsaved changes',
'There are unsaved changes. Please chose what you want.',
[
{
text: 'Go back',
onPress: () => {
navigation.dispatch(e.data.action);
},
},
{
text: 'Cancel',
onPress: () => {
console.log('cancelled'); …Run Code Online (Sandbox Code Playgroud) android react-native react-navigation react-navigation-stack