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

环境:dva.js(就是react)
我两个页面是不同地址的
图片描述

有一个搜索栏,
里面有一些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
这种页面不是一回事?
但是他这个父子页面的地址栏也变了呀。和我这个地址栏变了是不是不是一回事?

阅读 6.9k
3 个回答

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题