尝试修复导航切换阻塞

This commit is contained in:
mtvpls
2025-11-30 21:33:05 +08:00
parent 73ac9f79cb
commit a8965119ce
5 changed files with 43 additions and 29 deletions
+9 -3
View File
@@ -4,7 +4,7 @@
import { Cat, Clover, Film, Home, Radio, Star, Tv } from 'lucide-react';
import Link from 'next/link';
import { usePathname } from 'next/navigation';
import { usePathname, useSearchParams } from 'next/navigation';
import { useEffect, useState } from 'react';
interface MobileBottomNavProps {
@@ -16,9 +16,14 @@ interface MobileBottomNavProps {
const MobileBottomNav = ({ activePath }: MobileBottomNavProps) => {
const pathname = usePathname();
const searchParams = useSearchParams();
// 当前激活路径:优先使用传入的 activePath,否则回退到浏览器地址
const currentActive = activePath ?? pathname;
// 直接使用当前路由状态,确保立即响应路由变化
const getCurrentFullPath = () => {
const queryString = searchParams.toString();
return queryString ? `${pathname}?${queryString}` : pathname;
};
const currentActive = activePath ?? getCurrentFullPath();
const [navItems, setNavItems] = useState([
{ icon: Home, label: '首页', href: '/' },
@@ -98,6 +103,7 @@ const MobileBottomNav = ({ activePath }: MobileBottomNavProps) => {
>
<Link
href={item.href}
prefetch={false}
className='flex flex-col items-center justify-center w-full h-14 gap-1 text-xs'
>
<item.icon