【问题标题】:React Material Table: edit all rows at onceReact Material Table:一次编辑所有行
【发布时间】:2020-07-22 10:02:45
【问题描述】:

我一直在使用https://material-table.com/#/。它工作得很好,但是对于需要进行大量编辑的表格,使用逐行编辑功能相当麻烦。

我想要的是一个表格级别的操作,它将整个表格变成“编辑模式”,以及一个通用的提交操作/取消操作。

此问题链接到Material-table editable: Making all rows editable at once,但没有提供令人满意的答案。我希望好运。

我真的不知道从哪里开始,所以欢迎任何帮助。

【问题讨论】:

标签: reactjs material-ui


【解决方案1】:

Material-table 有一个可以使用的批量更新功能。下面是来自their websites的示例代码

<MaterialTable
  editable={{
    onBulkUpdate: (changes) =>
      new Promise((resolve, reject) => {
        setTimeout(() => {
          // write your logic here
          /* setData([...data, newData]); */
          resolve();
        }, 1000);
      }),
  }}
/>;

【讨论】:

  • 我后来才发现(或者它可能是同时添加的,它是最近的,1.68.0)。但是我不得不恢复到旧版本,因为最新版本会导致各种阻塞问题
【解决方案2】:

Material-Table 中给出的 EditRow 功能基于 rowData 而不是 Table 数据,同样你可以覆盖 EditRow,但它仅限于 rowData 而不是 Table 数据。据我所知,material-table 还不支持这个功能。我建议您在他们的repo 中提出问题/功能请求。

但是,我能想到的一种可能的解决方法是,如果编辑列(字段)只是您需要在整个表格中编辑的列(字段),那么您可以覆盖 EditRow 并提供您自己的 editRow 函数,您需要在其中将 tableData 与 rowData 一起传递,onChange 可以更新 tableData 中所有行的所需属性。

【讨论】:

    猜你喜欢
    • 2019-01-22
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 2018-08-03
    相关资源
    最近更新 更多