You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js如何实现/members/:id/edit动态路由及对应页面?

Next.js 动态路由配置方法

不管你用的是App Router(Next.js13+)还是Pages Router,都得靠文件夹/文件结构来匹配动态路由,对应/members/:id/edit的配置方式如下:

一、App Router 版本(Next.js13及以上推荐)

按这个层级创建文件夹和文件就行:

app/
├─ members/
│  ├─ [id]/  // 方括号包裹的是动态参数名,对应路由里的:id
│  │  ├─ edit/
│  │  │  └─ page.js  // 这个文件就是编辑页面的入口,必须叫page.js/tsx

然后在page.js里写你的编辑页面组件,动态id可以通过params拿到:

// app/members/[id]/edit/page.js
export default function MemberEditPage({ params }) {
  return (
    <div>
      <h1>编辑成员 {params.id}</h1>
      {/* 这里放你的编辑表单、逻辑代码 */}
    </div>
  )
}

二、Pages Router 版本(Next.js12及更早,或13+仍在使用的情况)

在pages目录下按以下结构创建文件:

pages/
├─ members/
│  ├─ [id]/
│  │  ├─ edit.js  // 文件名直接对应路由的edit段,动态id来自上级的[id]文件夹

页面组件里用useRouter拿动态参数:

// pages/members/[id]/edit.js
import { useRouter } from 'next/router'

export default function MemberEditPage() {
  const router = useRouter()
  const { id } = router.query

  return (
    <div>
      <h1>编辑成员 {id}</h1>
      {/* 编辑相关内容 */}
    </div>
  )
}

最后检查下Link组件的使用

确保用的是Next.js自带的next/link,写法别错:

import Link from 'next/link'

// 跳转代码
<Link href={`/members/${row.id}/edit`}>编辑该成员</Link>

这样配置完,点击Link就会正确跳转到对应的编辑页面,地址栏显示的路径也会和你设置的一致,不会再出现404了。

内容的提问来源于stack exchange,提问作者Awoooooooooooooooooooo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 02:20:05