当前位置: 首页 > news >正文

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

文章目录

  • bug描述
  • 原因
    • 分析:
  • 处理方案

bug描述

1.点击的A页面, 跳转到了B页面, 第一次页面正常显示
2.从B页面返回A页面
3.A页面不进行任何操作,再次点击A页面进入B页面
4.B页面自动滚动到底部.

原因

看一段A页面代码

					let that = thisthis.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中调用, 按理说和点击事件毫无关系

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

this.$nextTick(()=>{})

在这里插入图片描述
所以在路由跳转后, A页面的该回调函数被调用,此时的回调触发uni.pageScrollTo
就造成了在B页面诡异的滚动到底部问题

处理方案

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

http://www.lryc.cn/news/237508.html

相关文章:

  • 应用软件安全编程--23避免使用不安全的操作模式
  • 国产高云FPGA:纯verilog实现视频图像缩放,提供6套Gowin工程源码和技术支持
  • python操作windows窗口,python库pygetwindow使用详解
  • 手写消息队列(基于RabbitMQ)
  • kafka本地安装报错
  • 王者荣耀游戏
  • MobaXterm如何连接CentOS7的Linux虚拟机?Redis可视化客户端工具如何连接Linux版Redis?
  • python实现炫酷的屏幕保护程序
  • java学习part06数组
  • Java 的异常体系
  • V100 GPU服务器安装CUDA教程
  • 快速弄懂Python3.11中的新特性
  • 七,vi和vim
  • 湖科大计网:传输层
  • 设计模式(二)-创建者模式(3)-抽象工厂模式
  • [计算机网络]网络层概述
  • 猫12分类:使用yolov5训练检测模型
  • Kubernetes Dashboard部署ImagePullBackOff问题处理
  • 十四、Docker的基本操作
  • C#,数值计算——插值和外推,分段线性插值(Linear_interp)的计算方法与源程序
  • 详细讲解什么是单例模式
  • 在springBoot中同时使用mysql和MongoDB
  • 2023.11.19 hadoop之MapReduce
  • 力扣第841题 钥匙和房间 C++ DFS BFS 附Java代码
  • React 中 react-i18next 切换语言( 项目国际化 )
  • antd design 5 版本 文件上传
  • 【如何学习Python自动化测试】—— 浏览器操作
  • Python编程技巧 – 使用字典
  • el-tree 与table表格联动
  • Leetcode刷题详解——删除并获得点数