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()
}
阅读 544
1 个回答

目前暂时无法对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()
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进