wx:for渲染出来的movable-area删除出问题?
发布于 5 年前 作者 qma 12741 次浏览 来自 问答

我写了一个movable-area的组件,用于左滑删除

我把movable-area写成了一个组件插槽的样式,组件主要控制movable-area的左滑,内容用插槽写入。

出现的问题是,当我删除掉第一行数据的时候,第二行直接就变为了第一行被左滑拉开的样式!

每个movable-area都是一个单独控制的左滑坐标(因为是组件,利用wx:for循环出来的),当时我删除掉一行数据的时候,第二行数据直接变为了如下图所示:

在我理解中,组件是我用wx:for循环出来的,那么他们应该是自己单独控制自己的左滑坐标,为什么我删除掉第一个会直接把我第二个的坐标改变?因为我并没有在我数据中控制每个滑动的坐标,都是在组件内自己保存的!

图中的<sd>即是我所循环渲染的组件

图中的indexA和indexB都是我用于操作过后处理数据的索引,与滑动的坐标无关!

我再贴出在wxml中的图

当我第一行滑动到左侧此时他的x为0,当我点击删除,我在父层把我所循环的{{list}}中的第一行进行了一个splice(j, 1)的操作过后

此时第一行已经被删除,第二行的x自动的变为了0。

我反复查找也没找到为何会出现此问题,因为是循环的组件,每个组件都是自己单独控制的位移参数(并不是父层内控制的,上面的图也可以看见,我除了传递索引,并没有传递其他参数),为何我删除了第一行的数据,会导致这个问题?

1 回复

wx:key=“id”

回到顶部