[英]Get URL Params (Next.js 13)
我正在使用/app
目录构建一个 Next.js 13 项目。 我有一个问题 - 在根布局中,我有一个永久导航栏组件,该组件是从/components/Navbar.jsx
导入的。 基本上在Navbar.jsx
内部,我希望能够访问 url 中的 slug 参数,例如: localhost:3000/:slug
我想要其中的 slug id。 我已经为那个 slug 定义了一个 Next.js 13 page.jsx。 但是如何在导航栏组件中获取 slug id。 我也不想使用window.location.pathname
因为当页面路由到不同的 slug 时它不会改变并且只在我刷新时才会改变。
我试过旧的 Next.js 12 方法:
//components/navbar.jsx; import { useRouter } from "next/navigation"; export default function Navbar () { const router = useRouter(); const { slug } = router.query; useEffect(() => { console.log(slug); }, []); return <p>Slug: {slug}</p> }
但是它不起作用。
必须使用usePathname
import { usePathname } from 'next/navigation';
要在Next.js 13中的服务器组件中获取 URL 参数,可以使用页面 function 的searchParams
参数。
URL
localhost:3000/?slug
页面.js
export default function Page({searchParams}) {
return <Navbar slug={searchParams}></Navbar>
}
导航栏.js
export default function Navbar(props) {
return <p>Slug: {props.slug}</p>
}
更多信息: https://beta.nextjs.org/docs/api-reference/file-conventions/page
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.