Javascript 如何在不更改刷新页面的情况下将参数url重写为NextJS中的目录?

Javascript 如何在不更改刷新页面的情况下将参数url重写为NextJS中的目录?,javascript,next.js,Javascript,Next.js,好吧,这可能很简单,但我搞不懂 每当我在url中键入/login时,我只想停留在主页上,而不是重定向到/pages/login(现在是404)。我还需要将其保留为GET参数以切换我的LoginModal import Link from 'next/link' // components/Header.js <Link href="/?login" as="/login"> <LoginButton /> </Link

好吧,这可能很简单,但我搞不懂

每当我在url中键入/login时,我只想停留在主页上,而不是重定向到/pages/login(现在是404)。我还需要将其保留为GET参数以切换我的LoginModal

import Link from 'next/link'

// components/Header.js
<Link href="/?login" as="/login">
   <LoginButton />
</Link>

// components/Auth.js
const Auth = () => {
    const router = useRouter()
    return (
        <>
            { 'login' in router.query && <LoginModal />}
            { 'register' in router.query && <RegisterModal />}
        </>
    )
}

// pages/index.js
const Index = () => {
  return (
    <>
      <Header />
      <HomePage />
      <Auth />
    </>
  )
}

// pages/login.js doesn't exist
从“下一个/链接”导入链接
//组件/Header.js
//组件/Auth.js
常量Auth=()=>{
const router=useRouter()
返回(
{'login'在router.query&&}
{router.query中的“register”&&}
)
}
//pages/index.js
常数索引=()=>{
返回(
)
}
//pages/login.js不存在

谢谢大家!

这已在NextJS更新9.5中通过重写解决


它的工作原理就是这样。

这一问题已在NextJS更新9.5中通过重写解决

它就这样完美地工作着

// nextjs.config.js

module.exports = {
  async rewrites() {
    return [
      {
        source: '/login',
        destination: '/?login',
      },
      {
        source: '/register',
        destination: '/?register',
      },
    ]
  },
}