elementPlus的表格的复选框进入页面的时候,会执行请求?

image.png
这是html
image.png
这个是获取表格数据

const toggleSelection = (rows: any) => {
  if(rows) {
    rows.forEach((row: any) => {
      if(row.enable) {
        multipleTableRef.value!.toggleRowSelection(row,row.enable)
      }
    })
  }else {
    multipleTableRef.value!.clearSelection()
  }
}

这个是表格的默认勾选复选框,在获取到表格数据以后执行这个

onMounted(() => {
  getRuleManageData()
})

在onMounted周期中调用获取表格的数据,获取到数据以后执行上面的勾选复选框操作

const handleSelectionChange = (selection: any[]) => {
  const removedRows:any = prevSelectedRows.value.filter(row => !selection.includes(row));
  const addedRows = selection.filter(row => !prevSelectedRows.value.includes(row));
  removedRows.forEach((item:any) => {
    const requestData = {
      id: item.id,
      enable: false,
      category:item.category
    };
// 取消勾选复选框发起的请求
    SelectionChange(requestData)
  });
  addedRows.forEach(item => {
    const requestData = {
      id: item.id,
      enable: true,
      category:item.category
    };
// 添加勾选复选框发起的请求
    SelectionChange(requestData)
  });
  prevSelectedRows.value = [...selection];
}
const SelectionChange = (row:any) => {
  SigCategoryUpdate({
    id: row?.id,
    category: row?.category,
    enable: row?.enable
  }).then(res => {
    if(res.code === 200) {
      
    }
  })
}

现在的问题是 一进入页面或者是刷新页面,都是自动执行handleSelectionChange事件里面对addedRows这个进行遍历然后执行SelectionChange这个请求,如果表格的所有项都选中的时候,进入页面或者是刷新页面,选中的项都会在执行一次请求,请问如何解决,麻烦各位了,指正一下,挺急的

阅读 1.6k
1 个回答

可以加个参数isInitData判断 默认false

data(){
  return {
    isInitData:false
  }
}
getRuleManageData(){
  //新增
  this.isInitData=true
}
handleSelectionChange(){
  //新增
  if(this.isInitData){
    this.isInitData=false;
    return;
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏