Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 替换Next.js中查询中的值_Reactjs_Next.js - Fatal编程技术网

Reactjs 替换Next.js中查询中的值

Reactjs 替换Next.js中查询中的值,reactjs,next.js,Reactjs,Next.js,我正在使用nextjs。我使用查询参数创建url: http://localhost:3000/cars?colors=red&nr=20。当我点击按钮时,是否有可能只更改url的特定部分,如:http://localhost:3000/cars?colors=blue&nr=20。所以在这种情况下,我只是改变了蓝色的颜色。 我用过: router.replace( { 路径名:“/…”, 查询:{ 颜色:蓝色 }, }, 未定义, { 肤浅:是的, }, );您需要将所有查询添加到您的路由器

我正在使用nextjs。我使用查询参数创建url:
http://localhost:3000/cars?colors=red&nr=20
。当我点击按钮时,是否有可能只更改url的特定部分,如:
http://localhost:3000/cars?colors=blue&nr=20
。所以在这种情况下,我只是改变了蓝色的颜色。 我用过:

router.replace(
{
路径名:“/…”,
查询:{
颜色:蓝色
},
},
未定义,
{
肤浅:是的,
},

);您需要将所有查询添加到您的
路由器中。替换查询
,例如

  router.replace(
  {
    pathname: '/...',
    query:  {
      nr:20,
      color: blue
    },
  },
  undefined,
  {
    shallow: true,
  },
);
为了让它更简单,你可以这样做

  router.replace(
  {
    pathname: '/...',
    query:  {
      ...router.query, // list all the queries here
      color: blue // override the color property
    },
  },
  undefined,
  {
    shallow: true,
  },
);

你说它不工作是什么意思?浏览器没有更新URL吗?或者你的UI颜色没有改变?@sabrinalou,浏览器会更新它,但我丢失了url的另一部分:
http://localhost:3000/cars?colors=blue
。您可以看到
&nr=20
丢失,我只需要替换url的特定部分,但我不想更改以保持完整的项目。你有解决办法吗,你能帮忙吗?你能帮忙吗?