【React】react如何在两个页面间传递参数(componentWillReceiveProps)

环境:dva.js(就是react)
我两个页面是不同地址的
【React】react如何在两个页面间传递参数(componentWillReceiveProps)

有一个搜索栏,
里面有一些tag
http://localhost:8000/share 和
http://localhost:8000/searchResource
这两个页面的tag信息不能共享。

等于说我在主页面http://localhost:8000/share搜索了东西之后跳转到另一页http://localhost:8000/searchResource,组件重新加载tag里面的信息都消失了。

然后我按后退键回到http://localhost:8000/share时,系统又会把原来老的share页面记忆的tag信息调出来。

公司大佬跟我说用componentWillReceiveProps,我用了,没用。我觉得那个大佬是不是没注意我地址栏变了。
我找到了这篇文章:
http://blog.csdn.net/zrcj0706...

我的疑惑是componentWillReceiveProps是不是针对单页面的啊?但是这个文章里说了父子页面。

componentWillReceiveProps可以实现这种父子页面的值的传递

render((

<Router history={hashHistory}>

<Route path="/" component={App}>

{/* make them children of `App` */}

<Route path="/repos" component={Repos}/>

<Route path="/about" component={About}/>

</Route>

</Router>

), document.getElementById('app'))

核心问题:这种父子页面是不是跟我的
http://localhost:8000/share 和
http://localhost:8000/searchResource
这种页面不是一回事?
但是他这个父子页面的地址栏也变了呀。和我这个地址栏变了是不是不是一回事?

回答

路由变化传参有三种方式:
1.放在url里,拼成querystring,第一个页面拼,第二个页面取
2.放到localstorage,sessionstorage等本地存储里
3.如果路由跳转是用react-router-dom实现,那么可以在跳转的时候放到state里

<Link to={{pathname: '/searchResource', state: {你的参数对象}}}/> xxx </Link> 

可以参考react-router传参。

首先,react里没有页面这个概念。只有组件。你说成页面,人家还以为页面刷新了一次呢。

以上是 【React】react如何在两个页面间传递参数(componentWillReceiveProps) 的全部内容, 来源链接: utcz.com/a/75733.html

回到顶部