收藏
回答

使用splice获取id删除列表某项数组元素出现问题,删除数据删除错误?

怎么获取我设置的id而不是数组下标?

搜遍全网也没有找到解决办法,都是用的我这种方法,但是删除的话删除过的位置会有数据顶替上来,后续再删除就有可能无法删除我点击的数据,而是删除id为indexSelect的元素,这该怎么办?代码问题如下:

<view class="tr" wx:for="{{selectList}}" wx:for-item="item" wx:key="indexSelect">
                <view class="td1">{{item.selectService}}</view>
                <view class="td2">{{item.selectMonth}}</view>
                <view class="td3">{{item.oneListPay}}</view>
                <view class="td4"><text data-id="{{item.indexSelect}}" class="cancelSelect" bindtap="cancelSelect">{{item.cancel}}</text></view>
            </view>

cancelSelect(e) {
    console.log(this.data.selectList)
    console.log("-----e")
    console.log(e)
    let current = e.currentTarget.dataset.id
    console.log("-----id/current")
    console.log(current)
    console.log("-----indexSelect")
    // console.log(this.data.selectList[current].indexSelect)
    var selectList = this.data.selectList
    selectList.splice(current, 1)
    this.setData({
      selectList: selectList
    })
  },
回答关注问题邀请回答
收藏

3 个回答

  • 搁浅
    搁浅
    2022-07-22

    我想知道,要是删除了一条,再加载分页,会少一条数据你咋搞。

    2022-07-22
    有用
    回复
  • 小黎
    小黎
    2022-03-03

    data-id="{{index}}" 传这个


    2022-03-03
    有用
    回复
  • 无边。
    无边。
    2022-03-03

    已解决,使用for循环寻找符合条件的选项再删除

    eg:

        for(let i in selectList){
          if(selectList[i].indexSelect==current){
              selectList.splice(i, 1)
          }
      }
    
    2022-03-03
    有用
    回复
登录 后发表内容