React-route刷新

#1

现在做得一个项目,是页签样式的,现在有个需求是,比如我现在停留在“localhost://127.0.0.1/#/list”页面,然后点击页签,页签transitionTo(“list”), 路由跟当前的是一样的,现在是不刷新页面的,我想即使路由到当前页面,也能重新执行该页面的render等方法,有办法实现么?
因为之前玩过avalon,路由只要配置{reload:true}就能实现,所以想请教,react-route有没有类似的方法?

#2

听起来是需要强制刷新页面的需求, 要不然加 query 之类的办法强制路由更新?

#3

1.0.0实现了这个功能

#4

那是什么方法呢?

#5

后面加个随机数参数如何?

#6

现在能想到的就是加一个时间戳,之前在react-route文档里看到,可以在的标签中添加addHandlerKey={true},但是好像并没有什么卵用

#7

同樣求解答

#8

emit事件驱动,或者就直接window.location.reload 呢?

1 Like
#9

楼主 这问题解决了没有

#10

楼主这个问题解决了没 望告知

#11

react-router点击同一个链接location.key会改变。
http://localhost:8080/#/board?_k=iinnxp
http://localhost:8080/#/board?_k=gupb6o

如果数据获取是在组件mount时调用的接口,可以在shouldComponentUpdate判断location.key改变时重新获取数据。

#12

我把tab的相关逻辑写在顶层了,点击tab传递path, 需要刷新的页面调this.path()的方法, 把刷新逻辑放在componentWillReceiveProps进行比较,如果传递的path和this.path()相等,则刷新。

#13

帮了我的忙。 先用browserHistory.push 压入地址。然后reload。搞定

#14
<Link onClick={() => this.pageNavigate('/system/departments')} to={`/nop`} >
  pageNavigate (path) {
    setTimeout(() => {
      this.props.history.push(path)
    }, 0)
  }

先跳到其他地址,然后再跳回来

#15

我也遇到这个问题了 怎么解决呢 求助各位!!! 谢谢咯

#16

路由4.0之前,可以参考我之前写得文章利用react-router实现按需加载、登录验证、刷新组件。。。:我们公司项目就用的这种方式,4.0就直接用history.replace就可以啦!