city页面搜索城市切换之后再次点击city页面list组件的better-scroll就失效了应该怎么解决
来源:10-3 Vue项目的联调测试上线 - 真机测试
慕仰5016471
2020-10-27
视频中用的是1.8.1版本的 不用加updated () {this.scroll.refresh()} 在电脑上是没问题的 在手机上就不能滑动了
写回答
2回答
-
花花公子2016
2021-04-09
导致问题的原因是keep-alive的缓存,我直接把keep-alive干掉了,用这个缓存机制增加了前端代码的复杂性,迭代不好维护,牺牲一点性能来换取代码的稳定。
00 -
Samrtiboy
2020-10-27
同学你好,我的解决方法是在首页中也绑定滚动事件就可以完美解决无法滚动的问题了,PC端,移动端均可以滚动,可以参考一下,代码如下:
布局按照better-scroll的要求来
<div ref="wrapper" class="list"> <div> <HomeHeader></HomeHeader> <HomeSwiper :swiperList="swiperList"></HomeSwiper> <HomeIcons :iconList="iconList"></HomeIcons> <HomeRecommend :recommendList="recommendList"></HomeRecommend> <HomeWeekend :weekendList="weekendList"></HomeWeekend> </div> </div>
然后按照better-scroll的要求来写一下样式:
.list overflow hidden position absolute top 0 left 0 right 0 bottom 0
最后在mounted生命周期函数中绑定滚动事件:
mounted () { this.lastCity = this.city this.scroll = new BetterScroll(this.$refs.wrapper, { click: true, }) this.getHomeInfo() },
还要不能有下面这段代码否则无法正常滚动
updated () { this.scroll.refresh() }
我之所以想到这样做,是因为我发现每次在首页出现滚动条的情况下再去城市列表页就无法正常滚动了,因此我就我想尝试一下给首页也绑定滚动事件结果发现解决了无法滚动的问题,当然我的做法不一定合理,欢迎同学一起讨论,我感觉better-scroll在使用上还是要谨慎使用。
022020-11-24
相似问题