项目需求如下图:
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.png1.png
网友评论