uni-swipe-action组件本身的重要bug

436 阅读1分钟

项目需求如下图:

WechatIMG44.jpeg

项目bug:在nvue上搭建一个支持swipe侧滑编辑、删除的长列表,但是这个列表数据的新增、更新是在其他页面。动态加载数据,该组件就滑动失效了,而且官方文档提供的resize()方法也无效。如下图

文档.png

WechatIMG43.jpeg

解决思路:

在参考点数据源新增和更新的时候,下发一个通知,在列表的页面onload里注册接收的通知,接收到数据源发生改变之后,在onshow方法里刷新列表数据。

onLoad() {
			uni.$on('pointDidSave', (res) => {
				console.error("修改标定的摄像机");
				
				 this.isrefreshPointList = true;
				// if (_that.deviceCode) {
				// 	_that.ReferenceList = [];
				// 	_that.getdeviceBiaoding(_that.deviceCode);
				// }
			});
		},
		onShow() {
			console.log('【页面onShow】');
			if (this.isrefreshPointList) {
				this.ReferenceList = [];
				this.getdeviceBiaoding(this.deviceCode);
			}
		},

###原因:

 dom 模块中的 getComponentRect 接口是用来计算组件的宽高和位置的,必须得从视图已经渲染后获取值,而uni-swipe-action组件侧滑的底层代码中是根据已经渲染出来的宽度去滑动的。 ###组件底层代码

2.png 1.png