繁体   English   中英

如何在 NextJS 中将参数 url 重写为目录而不在刷新时更改页面?

[英]How to rewrite a param url as a directory in NextJS without changing page on refresh?

好的,所以它可能很简单,但我无法弄清楚。

每当我在 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

谢谢!

这已在 NextJS 更新 9.5 中通过 Rewrite https://nextjs.org/docs/api-reference/next.config.js/rewrites 解决

// nextjs.config.js

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

它就像那样完美地工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM