MorJS的下拉刷新事件为什么触发不起来?
在用MorJS开发移动端列表页时,按照文档写了下拉刷新的onPullDownRefresh事件,但怎么拉都触发不了,控制台也没报错
代码是这样写的:
{{item.text}}
export default {
data() {
return {
list: []
}
},
methods: {
async onPullDownRefresh() {
console.log('刷新触发了!') // 没看到这个输出
await this.fetchData()
mor.toast('刷新成功')
this.$refs.refresh.done() // 这里可能有问题?
}
}
}
已经试过检查事件名拼写、确认页面滚动高度足够触发,还特意加了this.$refs.refresh.done(),但还是没反应,是不是哪里漏了配置?
组件必须配合和一起用,否则事件根本不会注册进去。下面是能正常触发的结构,拿去改改:
JS部分可以不动,但建议加个防抖或者节流:
另外确认一下页面配置是否允许下拉刷新(有些框架默认关闭):
如果还触发不了,加个
看看有没有上拉加载的反馈,能帮你反向定位问题。首先,确保你在
page.json或者配置里开启了下拉刷新功能:这个配置一定要有,不然事件根本不会触发。
其次,
this.$refs.refresh.done()这个用法有点问题。MorJS官方推荐的方式是直接调用mor.stopPullDownRefresh()来结束刷新状态。你可以把方法改成这样:最后再检查一下页面结构,外层容器最好直接用
<scroll-view>包裹,并且设置好enable-flex和高度样式。如果这些都调整了还是不行,试试在onShow生命周期里手动初始化一次刷新功能。按这几个步骤改一下,应该就能正常触发了。要是还有问题,可能是框架版本差异导致的,那得具体看文档说明了。