什么替换了Next.js next/navigation中react-router-dom中的useLocation()?

lmyy7pcs  于 12个月前  发布在  React
关注(0)|答案(1)|浏览(122)

最近,我从React迁移到了Next.js email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)。在我的网站中,我在使用useNavigate()推送时使用了状态,并使用useLocation()从另一个页面获取值。我如何在Next.js中做同样的事情呢?我在Next.js中做了查询,但它在上面的链接中可见,我甚至学会了如何隐藏它,但我再也不能从参数中接收状态了。
我尝试了很多东西,这里有一个例子:link related to my question在这里它说使用next/router,但在next.js版本14.0.4中只说使用next/navigation

emeijp43

emeijp431#

请参阅从next.router迁移

  • 在使用App Router时,useRouter钩子应该从next/navigation而不是next/router导入
  • pathname字符串已被删除,并由usePathname()替换
  • query对象已被删除,并由useSearchParams()替换
  • router.events已被替换。参见下文。

按照你链接到的文章的链接duplicate的链接/导航部分,但是如果你选择在app目录中使用新的行为,请按照上面的说明使用正确的useRouterusePathnameuseSearchParams钩子。
范例:

'use client'

import { useRouter } from 'next/navigation';

...

const router = useRouter();

...

router.push("/somepath?param1=foo", "/somepath");

个字符

相关问题