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
相关产品推荐
相关产品推荐

