美文网首页
React第三方组件1(路由管理之Router的使用③传参)

React第三方组件1(路由管理之Router的使用③传参)

作者: 前端人人 | 来源:发表于2018-01-29 11:21 被阅读103次

微信公众号首发

本教程总共6篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章!

1、React第三方组件1(路由管理之Router的使用①简单使用)---2018.01.22

2、React第三方组件1(路由管理之Router的使用②多层级跳转及重定向)---2018.01.23

3、React第三方组件1(路由管理之Router的使用③传参)---2018.01.24

4、React第三方组件1(路由管理之Router的使用④按需加载-上)---2018.01.25

5、React第三方组件1(路由管理之Router的使用⑤按需加载-下)---2018.01.26

开发环境:Windows 8,node v8.9.1,npm 5.5.1,WebStorm 2017.2.2

今天我们讲下,如何给路由转递参数,路由下组件如何接收参数!

我们要实现的目标是给demo2-2 路由传递参数!然后在TodoList下接收参数!

我们先用下 react-router-dom 的Link组件!

import Reactfrom 'react';

import TodoListfrom './TodoList';

import {Route, NavLink, Redirect,Link}from 'react-router-dom'

const Index = ({match}) =>

       

           demo2-1

           {/*demo2-2*/}

pathname:`${match.url}/demo2-2`,

               search:'?sort=this-sort',

               hash:'#the-hash',

               state: {fromDashboard:'222' }

}}>demo2-2

render={() => ()}/>

       

       

;

export default Index;

其中:

pathname:路由地址

search:通俗一点讲就是url 中?后面的数据

hash :通俗一点讲就是在search后面再加#

state:通俗一点讲就是 转递一些 状态数据,可以是 对象、数组、字符串等

最后url会是这样子的

http://localhost:8080/#/demo2/demo2-2?sort=this-sort#the-hash

我们在TodoList里接收参数

let {location} =this.props;

{

location ?

           

hash:{location.hash}

           

pathname:{location.pathname}

           

search:{location.search}

           

state:{location.state && location.state.fromDashboard}

       :

null

}

一切就绪,我们在浏览器里查看下效果!

这里都接收到了!

search 里的参数具体值可以这样获取:

import utilsfrom '../../../public/js/utils';

search:{utils.urlParam('sort',location.search)}

大家发现没有 search hash都会在URL中出现

而state没有,所有当你刷新这个页面的时候,state会消失!

又出现一个新的问题:demo2-2 没有变红!

我们可以把数据放到 NavLink里:

pathname:`${match.url}/demo2-2`,

   search:'?sort=this-sort',

   hash:'#the-hash',

   state: {fromDashboard:'222' }

}}activeClassName="selected" exact>demo2-2

这样就是选中状态了!

这部分我讲的比较浅,大家实际应用中可能还会遇到其他种种情况!大家还是要多看官方文档!我只是抛砖引玉!

本文完

禁止擅自转载,如需转载请在公众号中留言联系我们!

感谢童鞋们支持!

如果你有什么问题,可以在下方留言给我们!

相关文章

网友评论

      本文标题:React第三方组件1(路由管理之Router的使用③传参)

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