大致的业务流程是这样:A->B->C->D->R->D-(成功)->A,因为业务需求的关系R是其他人开发的页面,用的avalon框架。因为不能在一个路由里跳转,我在D页面里面把关键数据存在session里面,回到该页面如果redux里面没有值就会从后台读取并且保存到redux里面。这样在R页面点击下一步或者app上的后退按钮都不会影响到我自己的流程。
项目实际运行下来,在pc端模拟和ios的机器上都能够按照我的期望运行,但是在部分安卓机上出现了一个问题:我在进入到R页面之后点击后退,的确回到了D并且取到了数据,但是我如果再按后退,会出现加载的进度条然后redux里面的数据都清空了,然后我在点击下一步到页面D中根据session获取到数据后,再点击返回又正常传递了数据。换句话说从R页面返回后,我的每一个后退操作(D->C->B->A)都会导致页面被重新加载从而无法用redux传递数据。
我尝试过window.history和hashhistory.goback的返回都是存在一样的问题,而用hashhistory.push却是可以正常跳转的。想请老师帮忙定位一下问题,我应该怎么进行修改。
轻松入门 React 开发,React Router 4 与 Webpack 2 完美升级项目
了解课程