收藏
回答

wx:for渲染出来的movable-area删除出问题?

我写了一个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 个回答

  • 卢霄霄
    卢霄霄
    2019-12-12

    wx:key="id"

    2019-12-12
    赞同 1
    回复 4
    • 🍉炉灬子
      🍉炉灬子
      2019-12-12
      上就是已经添加了 wx:key="i.id"的,在上面的图中有显示
      2019-12-12
      回复
    • 卢霄霄
      卢霄霄
      2019-12-12回复🍉炉灬子
      wx:key="id" 不是 i.id
      2019-12-12
      回复
    • 🍉炉灬子
      🍉炉灬子
      2019-12-12
      我R,还真是这个问题,大佬牛逼!感谢大佬,是我一直以来的wx:key的用法都是错误的
      2019-12-12
      回复
    • 卢霄霄
      卢霄霄
      2019-12-12回复🍉炉灬子
      不客气,是小程序思路和 vue react不一致。。大部分人都会用错
      2019-12-12
      回复
登录 后发表内容
问题标签