【发布时间】:2022-11-27 16:48:28
【问题描述】:
我在 Next.js 13 中使用实验性的 appDir,他们将 next/router 替换为 next/navigation,因此我相应地导入了 useRouter 挂钩。我在路由器中没有看到属性 pathname,它确实存在于 next/router 的路由器中。
Property 'pathname' does not exist on type 'AppRouterInstance'
我的用例是在我的导航栏中突出显示用户当前所在的链接。这是我试过的:
import Link from "next/link";
import { useRouter } from 'next/navigation';
const StyledNavLink: React.FC<NavLinkProps> = ({ to, children }) => {
const router = useRouter();
...
return (
<Link href={to} className={getNavLinkClass({isActive: router.pathname === to})}>
{children}
</Link>
);
};
我可以做些什么来获取当前路径名或其他方法来将我的类添加到活动链接上吗?
【问题讨论】:
-
您可以使用
usePathname,但它还不适用于服务器组件
标签: javascript reactjs typescript next.js