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 的神奇用法(路由传参)的主要内容,如果未能解决你的问题,请参考以下文章

react路由传参的三种方式:

vue-router和react-router-dom路由传参对照

React页面跳转传参

React 函数传参

vue路由传参query和params的区别

vue中this.$router.push路由传参以及获取方法