[uni-app]记录APP端跳转页面自动滚动到底部的bug

文章目录

bug描述

1.点击的A页面, 跳转到了B页面, 第一次页面正常显示

2.从B页面返回A页面

3.A页面不进行任何操作,再次点击A页面进入B页面

4.B页面自动滚动到底部.

原因

看一段A页面代码

js 复制代码
					let that = this
					this.defaultScrollTop = uni.getStorageSync('detailScrollTop')
					this.$nextTick(() => {
						that.getInfoHeight();
						that.getPostion()
						clearTimeout(this.timer)
						this.timer = setTimeout(() => {
							if (that.courseInfo.unlock != 0 && that.courseInfo.catalog && that
								.courseInfo.catalog.length) {
								if (this.firstLoad) {
									that.switchClick(2)
								} else {
									if (!this.firstLoad) {
										console.log('jump to page')
										console.log(this.defaultScrollTop, '----')
										uni.pageScrollTo({
											scrollTop: this.defaultScrollTop,
											duration: 150
										})
									}
								}
								this.firstLoad = false
							}
						}, 300)
					})

分析:

此处代码仅在 onLoad中调用, 按理说和点击事件毫无关系

最后排查发现 问题出在事件循环上

js 复制代码
this.$nextTick(()=>{})

所以在路由跳转后, A页面的该回调函数被调用,此时的回调触发uni.pageScrollTo

就造成了在B页面诡异的滚动到底部问题

处理方案

移除 jsthis.$nextTick(()=>{}) 或者在A页面做逻辑判断

相关推荐
剑之所向21 分钟前
.NET 官方`System.Threading.Channels`
前端·javascript·数据库
渡我白衣2 小时前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
八角丶3 小时前
Node 网络编程 —— TLS 模块
javascript·后端·node.js
倔强的石头1063 小时前
【Linux指南】动静态库系列(七):符号表与重定位:链接器如何把函数调用接起来
linux·前端·javascript
图扑软件4 小时前
中篇・运笔|统一 DataModel 底座,HT UI 组件万物同源
javascript·低代码·ui·性能优化·数据可视化
小小尚@5 小时前
WebGIS/ECharts 地图开发|MapLand 在线行政区划边界一键下载 GeoJSON 工具
前端·javascript·echarts
葡萄城技术团队5 小时前
工业数据可视化:使用活字格 AIcoding + Three.js 构建轻量化三维设备监控大屏
开发语言·javascript·信息可视化
默_笙6 小时前
🚍 一条 Todo 的奇幻漂流:TypeScript 全栈类型安全的"护照检查"
前端·javascript
weixin_422555427 小时前
el-menu子菜单点击就被激活,恢复之前的激活状态
javascript·vue.js·elementui
Tanjia_kiki9 小时前
谷歌浏览器中F12编辑并重发请求
开发语言·前端·javascript