reactjs - 如何在 NextJS 上插入查询字符串
问题描述
我正在使用next/link
指向特定页面。链接组件如下所示:
<Link
href={{
pathname: `/users/[slug]?lang=${lang}`,
query: { slug, lang },
}}
>
Click me
</Link>
这lang
是用户选择的语言 (i18)。
问题
每次我到达有问题的页面时,刷新后我都会收到此错误:
Error: The provided "href" (/users/[slug]?lang=en) value is missing query values (slug) to be interpolated properly. Read more: https://err.sh/vercel/next.js/href-interpolation-failed
然而我的 URL 看起来像这样http://localhost:3000/users/Y0901083155?lang=en
,其中 slug 是Y0901083155而 lang 是en
页面架构
├──_app.js
├──index.js
├──user/ --------------> folder
├──[slug]/ --------> folder
├── edit/ ----> folder
├── create/ ----> folder
├── index.tsx
解决方案
您应该slug
在路径名中包含 并传入lang
查询对象。
// Assuming slug='some-slug', and lang='en'
<Link
href={{
pathname: `/users/${slug}`, // Will match `/users/some-slug` path
query: { lang } // Will pass `?lang=en` as query param
}}
>
Click me
</Link>
推荐阅读
- r - 具有反应值的子集对象将失败
- javascript - 以编程方式制作的表单不会在触发器上返回响应
- mysql - MySQL 加入一个表两次
- django - User模型中的Django用户名不能重复
- wordpress - 联系表格 7:在填写必填字段之前,是否可以有一个灰色的提交按钮?
- ios - 快速从所有视图控制器中删除所有通知观察者
- javascript - 使用 chrome 扩展创建 DOM 转储
- php - Codeigniter 管理员用户仪表板问题
- ios - NSMutableAttributedString 隐藏 NSString 的一部分 - iOS
- mysql - Mysql 自加入视图