this.props 的神奇用法(路由传参)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了this.props 的神奇用法(路由传参)相关的知识,希望对你有一定的参考价值。
参考技术A 移动端培训项目,之前大多用GET请求。最近接到一个功能需求,后台给我做了五个POST接口,一瞬间有点凌乱。由于所有接口都是POST的请求,每个接口的请求参数大约都有四五个,而且是来自不同接口的返回值以及自定义值。而react的数据向来是存在reducer中的,所以造成了页面一刷新,这些由上一个接口返回过来的,对应请求参数数据就获取不到了。结果当然是“查询不到”啦~
本文侧重汇总 : ①this.props的用法;②react常用的路由传参方法。
传递数据: this.props.history.push(pathname:'/xxxx',state:data:data)
取数据: let ltEnrollInfo = this.props.location.state.ltEnrollInfo;
(有时间再细理this.props)
汇总一下常用的三种路由传参方式:
1、params传参(刷新页面后参数不消失,参数会在地址栏显示)
1、params传参(多个动态参数)
2、query传参(刷新页面后参数消失)
3、state传参( 刷新页面后参数不消失,state传的参数是加密的,比query传参好用)
50.React跳转路由传参3种方法和区别
1.路由表配置:参数地址栏显示
<Route path="/list/:id" component={List} />
html:<Link to=‘/list/2‘ >跳转列表页面</Link>
Js: this.props.history.push(‘/list/2‘);
List页面接收:
console.log(this.props.match.params.id)//传递过来的所有参数
2.query方法:参数地址栏不显示,刷新地址栏,参数丢失
html:
<Link to={{ pathname: ‘/list‘, query: { name: ‘xlf‘ } }}>跳转列表页面</Link>
Js方式:this.props.history.push({ pathname: ‘/list‘, query: { name: ‘ sunny‘ } })
List页面接收:
console.log(this.props.location.query.name)//传递过来的所有参数
3.state方法:参数地址栏不显示,刷新地址栏,参数不丢失
Html: <Link to={{ pathname: ‘/list‘, state: { name: ‘xlf‘ } }}>跳转列表页面</Link>
js:this.props.history.push({ pathname: ‘/list‘, state: { name: ‘sunny‘ } })
List页面接收
console.log(this.props.location.state.name)//传递过来的所有参数
以上是关于this.props 的神奇用法(路由传参)的主要内容,如果未能解决你的问题,请参考以下文章