mark-slide-list滑动操作插件引用遇到问题
问题:uni-app项目实现一个类似QQ左滑指定和删除的功能。
一开始用了uView中的SwipeAction组件,但是用于项目中出现不稳定的情况,每次打开需要点击正常的才能重新渲染,所以在插件市场找到mark-slide-list插件并引入项目,但是其中遇到点击第一次后不能点击的情况,因此把遇到的问题记录下来。
插件实现功能如图
解决过程
view中标签内绑定一个style样式,里面有slide_x 属性
:style="{ transform: 'translate3d(' + item.slide_x + 'px, 0, 0)' }"
在mounted函数中把子组件中list的值克隆给listData(clone函数是组件内部定义的一个函数),map集合把为选定的其他按钮的初始位置置为0
mounted() {
this.list.map((val, idx) => {
this.list[idx].slide_x = 0;
})
this.listData = this.clone(this.list);
},
这样写有一个问题,就是当点击一次后,程序无法获取slide_x 的值,所以需要在watch中监听slide_x 的值,所以需要在watch中重新利用map函数给slide_x 属性赋值,这样就正常了
watch: {
list(val) {
let temp = val;
temp.map((value, idx) => {
temp[idx].slide_x = 0;
})
this.listData = this.clone(temp);
}
},