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

Next.js GET路由使用params.providerId时出现报错的解决方法咨询

Next.js GET路由使用params.providerId时出现报错的解决方法咨询

嗨,我来帮你搞定这个报错问题~

你遇到的这个错误,核心原因是在Next.js的App Router里,context.params本身是一个Promise对象,不是直接可用的参数集合。你之前的写法是直接await它的属性providerId,这不符合它的使用规则,得先把整个params对象await出来,再去访问里面的属性。

错误写法(你的原代码):

const providerId = await context.params.providerId;

正确写法:

你需要先等待context.params这个Promise解析完成,拿到实际的参数对象后,再提取providerId:

export async function GET(req: Request, context: { params: Promise<{ providerId: number }> }) {
  // 先await整个params对象
  const params = await context.params;
  const providerId = params.providerId;

  // 后续逻辑保持不变
  const currentUserId = 2; // 记得后续替换成从会话/鉴权系统动态获取的用户ID
  // ...你的其他代码
}

或者更简洁的解构写法:

export async function GET(req: Request, context: { params: Promise<{ providerId: number }> }) {
  const { providerId } = await context.params;

  const currentUserId = 2;
  // ...你的其他代码
}

这样修改后,那个关于params需要先await的报错就会消失啦,因为我们遵循了Next.js App Router中动态路由参数的正确使用方式。

备注:内容来源于stack exchange,提问作者stefdec

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 13:29:37