首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Next.js中使用查询参数创建url

在Next.js中使用查询参数创建url
EN

Stack Overflow用户
提问于 2020-11-02 01:37:59
回答 3查看 4.9K关注 0票数 0

我想用下面的方法从query params创建一个url:

代码语言:javascript
运行
复制
 router.push(
      {
        pathname: '/cars',
        query: colors + type + price,

      },
      undefined,
      {
        shallow: true,
      },
  );

代码语言:javascript
运行
复制
const colors = ['red', 'blue', 'yellow']; //the arrays could contain many others values
const type = ['offroad', 'sport'];
const price = 'hight'  //this is a string

我想实现,当我点击触发router.push的按钮时,下一步:/cars?color=red,yellow,blue&type=offroad,sport&price=hight

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-11-02 18:23:26

您可以简单地这样做:

代码语言:javascript
运行
复制
 const router = useRouter();
 router.push(
  {
    pathname: '/cars',
    query: {
      colors,
      type,
      price,
  },
  undefined,
  {
    shallow: true,
  },

);

根据Next/Router类型,查询类型为ParsedUrlQuery类型,相当于

代码语言:javascript
运行
复制
interface ParsedUrlQuery extends NodeJS.Dict<string | string[]> { }

也就是说,next/router能够同时解析字符串和字符串数组

票数 3
EN

Stack Overflow用户

发布于 2021-10-04 13:58:49

如果您有一个动态路由,并且希望能够普遍使用此路由,例如,每个页面上的某个链接(在页眉中),您可以通过提供所有当前可用的路由参数并添加或替换其他或现有的路由参数来实现此目的。

代码语言:javascript
运行
复制
// ...
const router = useRouter();
// ...

<Link
    href={{
        pathname: router.pathname,
        query: { ...router.query, colors, type, price },
    }}
    passHref
    shallow
    replace
></Link>
票数 1
EN

Stack Overflow用户

发布于 2020-11-02 02:03:21

https://nextjs.org/docs/api-reference/next/router#with-url-object

你试试这个

代码语言:javascript
运行
复制
router.push({
          pathname: '/cars',
          query: {
              colors: colors.join(","),
               types: types.join(",")
           },
 }) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64634889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档