要在React路由中保留search参数,可以使用search属性将参数传递给<Link><NavLink>组件。这样在切换菜单时,search参数将保留不变。

例如,假设你有以下两个菜单项:

import { Link } from 'react-router-dom';

function Menu() {
  return (
    <div>
      <Link to="/page1?param1=value1">Page 1</Link>
      <Link to="/page2?param2=value2">Page 2</Link>
    </div>
  );
}

在上面的例子中,当你点击Page 1时,会导航到/page1?param1=value1,点击Page 2时,会导航到/page2?param2=value2。在切换菜单时,search参数将保留不变。

/page1/page2的组件中,你可以通过props.location.search获取search参数的值:

import { useLocation } from 'react-router-dom';

function Page1() {
  const location = useLocation();
  const searchParams = new URLSearchParams(location.search);
  const param1 = searchParams.get('param1');

  return (
    <div>
      <h2>Page 1</h2>
      <p>param1: {param1}</p>
    </div>
  );
}

function Page2() {
  const location = useLocation();
  const searchParams = new URLSearchParams(location.search);
  const param2 = searchParams.get('param2');

  return (
    <div>
      <h2>Page 2</h2>
      <p>param2: {param2}</p>
    </div>
  );
}

在上面的例子中,searchParams.get('param1')将返回value1searchParams.get('param2')将返回value2。这样,你就可以在切换菜单时保留search参数的值了

react路由用search传参如何使切换菜单后search传参不消失

原文地址: https://www.cveoy.top/t/topic/iDRx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录