import { useIsFocused, useRoute, useNavigation, } from '@react-navigation/native'; import AsyncStorage from '@/storage/index'; export const useRouter = props => { const router = useNavigation(); console.log('🚀 ~ useRouter ~ router:', router) const isFocused = useIsFocused(); const route = useRoute(); const linkTo = (path, params) => { router.navigate(path, params); }; const goBack = () => { router.goBack(); }; const setParams = params => { router.setParams(params); }; const getParams = () => { return router.getState().params; }; // 获取当前路由 const getCurrentRoute = () => { return router.getState().routes[router.getState().index].name; }; // 重置所有路由 const resetAllRoutes = (name) => { router.reset({ index: 0, routes: [{ name: name || 'Guide' }], }); }; // 判断是否 登录了再跳转 如果 没有登录就去登录页面 const isLogin = () => { const user = AsyncStorage.getItemAsync('user'); if (!user) { router.navigate('Login'); } }; return { router, isFocused, route, linkTo, goBack, setParams, getParams, isLogin, getCurrentRoute, resetAllRoutes, }; };