From 42c2fb4ce3c7f654616e5bab6589360a3eb6f6c1 Mon Sep 17 00:00:00 2001 From: lan Date: Tue, 24 Feb 2026 12:50:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dci=E4=B8=AD=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/PageTransition.tsx | 34 +++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/components/PageTransition.tsx b/src/components/PageTransition.tsx index d04dd5a..7efe92a 100644 --- a/src/components/PageTransition.tsx +++ b/src/components/PageTransition.tsx @@ -2,14 +2,15 @@ import { motion, AnimatePresence } from 'framer-motion'; import { usePathname, useSearchParams } from 'next/navigation'; -import { useEffect, useState, useRef } from 'react'; +import { useEffect, useState, useRef, Suspense } from 'react'; import { useRouter } from 'next/navigation'; interface PageTransitionProps { children: React.ReactNode; } -export default function PageTransition({ children }: PageTransitionProps) { +// 内部组件:使用 useSearchParams 的部分 +function PageTransitionContent({ children }: { children: React.ReactNode }) { const pathname = usePathname(); const searchParams = useSearchParams(); const router = useRouter(); @@ -96,13 +97,13 @@ export default function PageTransition({ children }: PageTransitionProps) { }; const getLoadingVariants = () => ({ - initial: { + initial: { opacity: 0, scale: 0.8, y: 20 }, - animate: { - opacity: 1, + animate: { + opacity: 1, scale: 1, y: 0, transition: { @@ -133,17 +134,17 @@ export default function PageTransition({ children }: PageTransitionProps) { >
- ); } + +// 加载状态组件 +function PageTransitionFallback() { + return ( +
+ {null} +
+ ); +} + +export default function PageTransition({ children }: PageTransitionProps) { + return ( + }> + {children} + + ); +}