react-路由组件传递参数的三种方式

整理了一下路由组件传递参数的三种方式

1.params传参

  • 路由链接(携带参数):详情
  • 注册路由(声明接收):
  • 接收参数:this.props.match.params

2.search传参

  • 路由链接(携带参数):详情
  • 注册路由(无需声明,正常注册即可):
  • 接收参数:this.props.location.search
  • 备注:获取到的search是urlencoded编码字符串,需要借助querystring解析

接收参数页面的this.props的返回值如下图所示中的search
react-路由组件传递参数的三种方式_第1张图片
我们获取id 和title的值 需要借助node.js中自带的 querystring
import qs from 'querystring'
使用方法

  const { search } = this.props.location
  console.log(qs.parse(search))

打印出来的结果如下
react-路由组件传递参数的三种方式_第2张图片
所以需要去掉id前面的?
const {id,title} = qs.parse(search.slice(1))
react-路由组件传递参数的三种方式_第3张图片

3.state传参

  • 路由链接(携带参数):详情
  • 注册路由(无需声明,正常注册即可):
  • 接收参数:this.props.location.state
  • 备注:刷新也可以保留住参数

你可能感兴趣的:(react,路由,传递参数,react,link,this.)