现在做得一个项目,是页签样式的,现在有个需求是,比如我现在停留在“localhost://127.0.0.1/#/list”页面,然后点击页签,页签transitionTo(“list”), 路由跟当前的是一样的,现在是不刷新页面的,我想即使路由到当前页面,也能重新执行该页面的render等方法,有办法实现么?
因为之前玩过avalon,路由只要配置{reload:true}就能实现,所以想请教,react-route有没有类似的方法?
React-route刷新
share90
#1
cxxsn
#11
react-router点击同一个链接location.key会改变。
http://localhost:8080/#/board?_k=iinnxp
http://localhost:8080/#/board?_k=gupb6o
如果数据获取是在组件mount时调用的接口,可以在shouldComponentUpdate判断location.key改变时重新获取数据。
share90
#12
我把tab的相关逻辑写在顶层了,点击tab传递path, 需要刷新的页面调this.path()的方法, 把刷新逻辑放在componentWillReceiveProps进行比较,如果传递的path和this.path()相等,则刷新。
mlyknown
#14
<Link onClick={() => this.pageNavigate('/system/departments')} to={`/nop`} >
pageNavigate (path) {
setTimeout(() => {
this.props.history.push(path)
}, 0)
}
先跳到其他地址,然后再跳回来
sosout
#16
路由4.0之前,可以参考我之前写得文章利用react-router实现按需加载、登录验证、刷新组件。。。:我们公司项目就用的这种方式,4.0就直接用history.replace就可以啦!