美文网首页
react路由跳转传参方式

react路由跳转传参方式

作者: any_5637 | 来源:发表于2019-11-01 10:43 被阅读0次

react在路由跳转进行传参有以下几种方式:
1. params方式传参
app.js

  import React from 'react';
  import { Router,Route, Redirect} from 'react-router';
  import { createBrowserHistory } from "history";

  import OnRefsTest from './component/OnRefs.js';
  import Test from './component/Test.js';
  const history = createBrowserHistory();

  export default class App extends React.Component {
  render() {
    return (
    <div className="App">
      <Router history={history}>
      <Redirect from='/' to='/one' /> 
      <Route path='/one' component={Test}></Route>
      <Route path='/user/:name' component={OnRefsTest}></Route>
      </Router>
    </div>
    );
  }
  }

子组件OnRefs.js

  import React    from 'react';
  import ReactDOM from 'react-dom';

  export default class OnRefsTest extends React.Component {
    onClick =() => {
      this.props.history.push("/one");
    }
    componentDidMount() {
      const { name } = this.props.match.params;
      console.log(name);
    }
    render() {
      return (
        <div>
          <button onClick={this.onClick}>我是返回</button>
          <input ref={node => { this.textInput = node }}></input>
        </div>
      )
    }
  }

组件Test.js

  import React    from 'react';
  import ReactDOM from 'react-dom';

  export default class Test extends React.Component {
    onClick= () => {
      this.props.history.push("/user/sam");
    }
    render() {
      return (
        <div>
          <span>我是路由</span>
          <button onClick={this.onClick}>加加加</button>
        </div>
      )
    }
  }

路由跳转:this.props.history.push("/user/:name");;
组件中在componentDidMount中接受参数:const { name } = this.props.match.params;
2. search方式传参
路由写法:

  // 路由
  <Route path='/user' component={OnRefsTest}></Route>

触发跳转:

  this.props.history.push({
    pathname: '/user',
    search: 'name=hehe&age=22'
  })

接受参数:

  componentDidMount() {
    console.log(this.props.location.search); // '?name=hehe&age=22'
  }

2. state方式传参
路由写法:

  // 路由
  <Route path='/user' component={OnRefsTest}></Route>

触发跳转:

      this.props.history.push({
      pathname: '/user',
      state: {
        name: 'hehe',
        age: 22
      }
    })

接受参数:

  componentDidMount() {
    console.log(this.props.location.state); //{name: "HEHE", age: 22}
  }

相关文章

  • react路由跳转传参方式

    react在路由跳转进行传参有以下几种方式:1. params方式传参app.js 子组件OnRefs.js 组件...

  • react路由传参、路由跳转方式

    普通路由传参的方式 search params 通过state dva路由跳转 .从props取出并传递histo...

  • Next.js 跳转传参并接收接参

    介绍路由传参,接参使用方法 传参 + 跳转页面接收参数 动态路由传参 + 跳转页面接收参数创建动态路由在pag...

  • Vue-Router

    1. 路由配置 默认路由跳转 在 new Router时可用的配置参数: 2.路由传参 Vue路由传参的几种方式 ...

  • Vue实战第二天

    路由组件传参 动态路由传参 静态路由传参 函数传参htm5 history 模式 设置通用路由,找不到页面跳转自定...

  • react --- 路由跳转、路由传参

    一、路由跳转1、a标签跳转 2、js跳转 一、路由传参1、state(不消失) 2、params(不消失) 3、q...

  • react路由跳转、传参

    1、路由的跳转 一、DOM跳转 在需要跳转的页面导入import {Link} from 'react-route...

  • vue-router

    路由安装 路由配置 路由跳转 路由传参-param使用params传参只能使用name进行引入http://loc...

  • flutter页面跳转 Route 使用汇总

    一、push方式直接跳转 普通跳转 带参数跳转和接收参数 构造函数直接传参 跳转后携带参数返回 二、命名路由跳转 ...

  • vue中组件3种编程式路由跳转传参

    路由传参 1、路由配置传参(刷新页面不会丢失参数,url会携带参数) A组件跳转B组件传参A组件 路由配置 B组件...

网友评论

      本文标题:react路由跳转传参方式

      本文链接:https://www.haomeiwen.com/subject/jwztbctx.html