要使切换菜单后search传参不消失,你可以使用location对象的search属性来获取当前的search参数,并将其添加到push方法的目标路径中。这样,切换菜单后,push方法会将之前的search参数保留下来。

下面是一个示例代码:

import React from 'react';
import { BrowserRouter as Router, Link, Route } from 'react-router-dom';

class Menu extends React.Component {
  render() {
    return (
      <div>
        <Link to="/page1">Page 1</Link>
        <Link to="/page2">Page 2</Link>
      </div>
    );
  }
}

class Page1 extends React.Component {
  handleClick = () => {
    const { history } = this.props;
    const currentSearch = this.props.location.search;
    history.push(`/page2${currentSearch}`);
  };

  render() {
    return (
      <div>
        <h1>Page 1</h1>
        <button onClick={this.handleClick}>Go to Page 2</button>
      </div>
    );
  }
}

class Page2 extends React.Component {
  handleClick = () => {
    const { history } = this.props;
    const currentSearch = this.props.location.search;
    history.push(`/page1${currentSearch}`);
  };

  render() {
    return (
      <div>
        <h1>Page 2</h1>
        <button onClick={this.handleClick}>Go to Page 1</button>
      </div>
    );
  }
}

class App extends React.Component {
  render() {
    return (
      <Router>
        <div>
          <Menu />
          <Route path="/page1" component={Page1} />
          <Route path="/page2" component={Page2} />
        </div>
      </Router>
    );
  }
}

export default App;

在这个示例中,当你在Page1点击"Go to Page 2"按钮时,会跳转到Page2并保留之前的search参数。同样,当你在Page2点击"Go to Page 1"按钮时,会跳转到Page1并保留之前的search参数

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

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

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