首页 > 文章列表 > 点击保存按钮后表格数据未更新,是什么原因导致的?

点击保存按钮后表格数据未更新,是什么原因导致的?

284 2025-03-19

点击保存按钮后表格数据未更新,是什么原因导致的?

表格数据刷新失败:自定义按钮解决之道

您希望点击“保存”按钮更新表格数据,但 save() 函数调用 getserid() 后,表格数据并未刷新。本文分析可能原因并提供解决方案。

问题根源分析

以下几种情况可能导致数据更新失败:

  • 数据未清空: getserid() 函数获取数据前,未清空 portdata.tabledata 数组,导致旧数据与新数据混合,造成显示错误。建议在 getserid() 函数开始处清空数组。

  • 数组合并错误: 使用 ... 展开运算符将新数据添加到 tabledata 数组的方式可能不正确。tabledata 作为一个数组,应使用 push() 方法添加新元素,而非直接合并。

解决方案

修改代码如下,解决数据清空和数组合并问题:

async function save() {
  const data = {
    // ...
  };
  const SetData = await api.SetPortOut(data);
  const { data: res } = SetData;
  if (res.error_code === 0) {
    GetSerID(); // 初始化列表
    return ElMessage({ message: res.msg, type: 'success', showClose: true });
  } else {
    return ElMessage({ message: res.msg, type: 'error', showClose: true });
  }
}

async function GetSerID() {
  portdata.tabledata = []; // 清空数组
  // ... 获取并处理数据的其余代码 ...
  //  正确使用push方法添加数据,例如:
  //  const newData = await fetchData(); // 假设fetchData获取新数据
  //  portdata.tabledata.push(...newData); 
}

通过清空 portdata.tabledata 并在添加新数据时使用 push() 方法,确保每次保存后表格数据都能正确更新。 请注意,fetchData() 是一个示例函数,您需要替换成您实际获取数据的函数。 确保您的 fetchData() 函数返回一个数组,以便 push() 方法正确工作。

来源:1740380571