uview-ui组件swipeAction关闭无法生效解决方案
在使用swipeAction滑动块的时候点击删除无法关闭选项,
u-swipe-action组件源代码
watch: { show: { immediate: true, handler(nVal, oVal) { if (nVal) { this.open(); } else { this.close(); } } } }
是用watch监听属性改变才能触发,所以在打开选项触发open函数必须设置为true
- 在对data中的数组或对象进行修改时候,有些操作是非响应式的,vue检测不到数据更新,此时就需要使用this.$set进行响应式的数据更新
- watch中添加“deep:true”来实现对对象的属性变化的深度监听,对于数组的对象,此方法会失效
解决方案
// 打开 open(index) { this.validList[index].show = true; this.$set(this.validList, index, this.validList[index]); }, // 关闭 close(index) { this.validList[index].show = false; this.$set(this.validList, index, this.validList[index]); }