Redux如何在同一个页面中使用点击Link标签跳转本页面的方法刷新内容?

本人最近在做一个重构github的项目,由于路由的设计是基本模仿了github本身的规则,现在在浏览代码目录时需要使用点击目录的方式跳转到新路由,并对下一级的内容获取展示;

https://img.mukewang.com/5c2719500001a0eb16990781.jpg

在第一次进入页面时是使用的componentDidMount里面对数据进行了init,根据地址栏里的路径获取相关的每一层的文件数据

这里的repoContentInit函数是一个actionCreator,会引导重新请求数据,并重绘页面

https://img1.mukewang.com/5c27195c0001737410840198.jpg

在渲染出数据,并点击Link标签后,发现虽然地址的hash值确实发生了变化,组件做了相应的update,这个时候我又需要对路由进行处理,并获取数据应该在哪里操作呢?

我想到的解决方案是在Link上面加上click事件(即手动调用repoContentInit方法),但是感觉这样工作量有一些大,而且不利于扩展,如果以后碰到用户有手动输入的链接内容,处理起来会更麻烦,不知道大家有没有碰到过类似的问题,或者有更好的方法吗?

希望有大神能够帮助解惑了!在此谢过

项目链接:github-mobile


HUWWW
浏览 547回答 1
1回答

UYOU

对于这些项目页面,设定根路由,比如userName/projectName/,到这个路由可以render一个高阶组件,这个组件根据projectName去获取文件信息进行展示,点击文件夹或文件时,render另一个高阶组件,这个组件根据projectName和文件夹或文件名路径去获取信息进行展示,这样在app里你其实只需要获取projectName,和文件夹文件名路径信息并给予这两个高阶组件就可以了,每次路由变更都会重新进行传递新的值去获取新的数据(设置缓存会提高效率)进行展示。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript