请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

嵌入app里面的一个静态页面的返回出现的兼容性问题

    大致的业务流程是这样: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却是可以正常跳转的。想请老师帮忙定位一下问题,我应该怎么进行修改。

正在回答 回答被采纳积分+3

1回答

Parry 2018-01-08 09:55:04

我看不到代码,只能猜一下。
是不是在页面初始化的地方有清空 state 的地方?
是不是后面进入都不清空了?

0 回复 有任何疑惑可以回复我~
  • 提问者 沐羽临风 #1
    不是的,没有对state做清空,因为公司策略我不能提供代码。
    今天我又尝试了一下,发现安卓手机在UC上不会出现这样的问题,但是可以在微信浏览器里面复现。我在项目里对页面切换做了一个动画效果,而在后退的时候没有出现这个效果而是出现了加载进度条,所以我感觉是在后退的时候对网页重新进行了加载而不是渲染。
    回复 有任何疑惑可以回复我~ 2018-01-08 10:03:09
  • 提问者 沐羽临风 #2
    目前我的处理方法是在进入页面时如果props里面的值为空对象就从session里面读取然后访问后台,但是这样就会导致部分安卓机在后退时会出现重复访问。从性能还是代码上都不太好
    回复 有任何疑惑可以回复我~ 2018-01-08 10:11:33
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信