HarmonyOS List, LazyForEach调用删除方法,删除比如2-4,只会删除掉3和4

//批量删除 收件箱
private deleteMsgList(positionArray: Array<number>) {
  let sender = MessageApi.deleteMsgList(this.idList)
  JUNetRequest.request(sender, (resultCallBack) => {
    Logger.debug(`批量删除接口:${JSON.stringify(resultCallBack.result)}`)
    Logger.debug(`批量删除接口:${positionArray}`)
    this.idList.length = 0
    if (resultCallBack.success) {
      positionArray.forEach(position => {
        this.dataList.deleteData(position)
      })
      this.dataList.reloadData();
    }
  })
}                Array<Number>比如是1.2.3我,调用 上述代码后,只删除了2,3没有删除1.   //删除单个数据
public deleteData(index:number):void{
  this.dataList.splice(index,1)
  this.notifyDataDelete(index)
},
public reloadData():void{
  this.notifyDataReload()
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
HarmonyOS
2024-12-25 07:42:22
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
shlp

目前暂时无法对lazyforeach数组进行批量操作,可以参考以下代码自行封装

public batchDelete(arr: number[]): void {
  let temp: string[] = []
  this.dataArray.forEach((v) => {
  temp.push(v)
})
console.info(JSON.stringify(arr),'temp')
arr.forEach((v) => {
  let delteItem = temp[v]
  console.info(delteItem,temp.indexOf(delteItem),'del')
  this.dataArray.splice(this.dataArray.indexOf(delteItem), 1);
})
this.notifyDataReload()
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
分享
微博
QQ
微信
回复
2024-12-25 10:23:36
相关问题
HarmonyOS Grid拖动+删除
776浏览 • 0回复 待解决
HarmonyOS addComponentContent如何删除
857浏览 • 1回复 待解决
cookie的读、写删除操作
1084浏览 • 1回复 待解决
删除按钮在哪里???
8084浏览 • 2回复 待解决
HarmonyOS NavPathStack如何删除元素
689浏览 • 1回复 待解决
求告知删除数据文件的方法
1066浏览 • 1回复 待解决
RichEditor添加、删除、重载图片
1804浏览 • 1回复 待解决
PolarDB删除后如何找回 ?
3380浏览 • 1回复 待解决
docker删除所有的容器?
5375浏览 • 2回复 待解决
HarmonyOS 生成的faultlog如何删除
719浏览 • 1回复 待解决