React Native 再按一次退出

import { BackHandler, ToastAndroid  } from "react-native"
import { useNavigation } from "@react-navigation/native"

const navigation = useNavigation()
let lastBackPressed = 0

useEffect(() => {
    const backAction = () => {
      const navigationRoutes = navigation.dangerouslyGetState().routes
      if (navigationRoutes.length === 1 && navigationRoutes[0]['name'] === 'home') {
        if (lastBackPressed && lastBackPressed + 2000 >= Date.now()) {
          BackHandler.exitApp();//直接退出APP
        }else{
          lastBackPressed = Date.now()
          ToastAndroid.show('再按一次退出', 1000)
        }
      } else {
        navigation.goBack()
      }
      
      return true
    }

    const backHandler = BackHandler.addEventListener(
      "hardwareBackPress",
      backAction
    );

    return () => backHandler.remove();
  }, [])
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容