微信小程序组件scroll-view滚动到底部多次触发加载如何解决?

这篇具有很好参考价值的文章主要介绍了微信小程序组件scroll-view滚动到底部多次触发加载如何解决?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在 iOS 真机上,scroll-view 滚动时会多次触发 scrolltolower 事件的问题,可以设置一个“加载标识”(如 DisableTrigger)来避免重复请求下一页数据。具体做法为:

在 data 中新增一个 DisableTrigger 变量,用于标识当前是否可以执行下一页数据的加载操作。

在 init()方法中,在请求数据前将 DisableTrigger 设置为 false,表示当前正在加载数据。

在请求数据成功后,将 DisableTrigger 设置为 true,表示当前已经完成数据加载。

在 onreachBottom 方法中,判断 DisableTrigger 是否为 true,如果是,则执行下一页数据的加载,否则不做任何操作。

以下是具体的示例代码:文章来源地址https://www.toymoban.com/news/detail-639968.html

<scroll-view style="height: 100%;" scroll-y="true" @scrolltolower="onreachBottom">
  <view class="panel-item " v-for="item in rankList" :key="item.id">
	 <view> </view>
  </view>
</scroll-view>
<script>
	export default {
		data() {
			return {
				rankList: [],
				page: 1,
				total: 1,
				DisableTrigger:true //标识
			};
		},
		onShow() {
			if (this.$store.state.token) {
				this.init()
			} else {
				this.$to('login')
			}
		},
		methods: {
			async init(page = 1) {
				this.page = page
				//加载前设置DisableTrigger为false
				this.DisableTrigger = false
				uni.showLoading({
					mask: true
				})
				//请求接口数据
				let res = await api.getRank({
					page: this.page,
				});
				if (res.errCode == 0) {
					this.total = res.data.totalPage;
					let list = res.data.list;
					if (this.page == 1) {
						this.rankList = list
					} else {
						this.rankList = this.rankList.concat(list);
					}
					//接口加载成功返回数据后DisableTrigger为true
					this.DisableTrigger = true
				} else if (res.errCode != 2 && res.errCode != 3) {
					this.$toast(res.msg)
				}
				uni.hideLoading()
			},
			onreachBottom() {
			    //利用DisableTrigger标识设置判断,防止多次触发请求接口。
				if (this.page < this.total && this.DisableTrigger) {
					this.init(this.page + 1)
				}
			},
		}

到了这里,关于微信小程序组件scroll-view滚动到底部多次触发加载如何解决?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序 scroll-view 实现自动滑动到底部

    要实现实时聊天功能的话,那么每次有新的消息进来之后,要自动的滚动到底部。 scroll-view 有一个属性 scroll-into-view : 把新进来的消息, push 添加到消息列表 messageList 中。 但页面不会自动往下滚动。 1、在 scrill-view 节点最下面加一个垫片节点。 需要说明的是:这里的 3 个

    2024年02月10日
    浏览(59)
  • 微信小程序--开发横向滚动条scroll-view

    一、话不多说,上代码 .wxml文件写法 css样式 js写法 二、解析  scroll-x=\\\"true\\\":表明是横向滚动 class=\\\"{{currentTab==index?\\\'scroll_item\\\':\\\'\\\'}}\\\":当点击时才会变色,其中currentTab的初始值是0,通过点击事件更改值

    2024年02月12日
    浏览(54)
  • uniapp微信小程序scroll-view滚动scrollLeft不准确

    今天在实现微信小程序的一个横向导航的时候出现了一个问题,就是每次滑到滚动条最右边的时候 scrollLeft的值都不准确 原因:因为每次滚动监听事件都会被调用比较耗费资源系统会默认节流,可以在scroll-view 加一个 throttle=“{{false}}” 关闭节流,如下: 但是这种方法会影响

    2024年02月15日
    浏览(46)
  • 微信小程序---scroll-view 设置scroll-x或者scroll-y如何去掉滚动条

    第一种方法: 第二种方法:添加( enhanced :show-scrollbar=“false”)

    2024年02月07日
    浏览(53)
  • 处理微信小程序scroll-view未被占满时滚动的问题

    微信小程序(原生/uniapp)使用了 scroll-view 组件的第一个子元素设置了 margin-top 时,即使 scroll-view 只有一行也可以滚动。 解决办法: 方案一:

    2024年02月15日
    浏览(49)
  • 微信小程序 scroll-view组件的基本使用

     scroll-view 组件 其实和view组件很像,结合上节课的内容我们接着尝试教大家一下这个组件怎么使用,现实中这个组件能实现的效果又有那些  上图是CSDN的一个私聊窗口界面,我么看图就能想象的到,左边的聊天对像窗口是不是可以滚动的,这时候小程序就可以通过scroll-vie

    2024年02月01日
    浏览(63)
  • 微信小程序 - 完美去除 <scroll-view> 滚动条,保证 100% 去掉隐藏苹果 ios 系统、安卓滚动条(解决 ios 苹果真机scroll-view无法隐藏滚动条)详细示例代码,保证可用

    关于微信小程序去掉 scroll-view 滚动条的教程中,全都是只能去掉安卓系统手机滚动条,而苹果手机则无法去掉。 本文 实现了在微信小程序中,强力去除 scroll-view 组件滚动条,保证去除苹果ios系统和安卓手机的滚动条, 您可以自由的将本文的去除代码应用到 “局部 / 全局”

    2024年02月11日
    浏览(62)
  • 微信小程序scroll-view组件设置 scroll-top无效问题解决

    微信小程序官方提供了一个可以设置滚动条位置的方法 scroll-top 在实际运用过程中,发现设置了scroll-top无效,滚动条位置并没有发生变化,是因为微信小程序的官方框架处于性能考虑,初始化设置scroll-top不会重新渲染页面,需要将scroll-top的是放在一个事件内执行才可以生效

    2024年02月11日
    浏览(65)
  • [微信小程序] scroll-view组件下拉刷新,怎样结束刷新(已解决)

    官方文档:scroll-view | 微信开放文档 (qq.com) 这里就不赘述scroll-view的基本使用方法了,先看问题:  代码:  由于在官方文档中并没有详细说明如何在刷新完成之后关闭刷新,这里我给出的解决办法就是,给组件绑定一个刷新数据,然后在触发下拉刷新的函数中手动将数据改

    2024年01月20日
    浏览(64)
  • 微信小程序 scroll-view 组件的 bindscroll 不触发不生效

    使用微信小程序基础组件中的scroll-view,但是滑动的时候 bindscroll 一直不生效。 在网上查了资料,发现了几类不生效的原因,总结如下: 1、没有设置高度,根据小程序文档,在使用 scroll-view 组件用于竖向滚动时一定要设置高度。 2、没有设定scroll-y 3、组件属性的长度单位默

    2024年02月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包