pro-components icon indicating copy to clipboard operation
pro-components copied to clipboard

🐛[BUG] EditableTable.recordCreatorProps.record函数触发时机问题

Open walker27 opened this issue 1 year ago • 1 comments

🐛 bug 描述

EditableTable.recordCreatorProps.record函数会在按钮挂载的时候就预生成了要添加的行数据,并且后面每次点击按钮生成的行数据是在上一次按钮的时候的生成的,这点有点反直觉,是否考虑调整一下? 问题代码位置

🏞 期望结果

在点击按钮时才生成当前的行数据

💻 复现代码

export default () => {
  const columns: ProColumns<DataSourceType>[] = [
    {
      title: "index",
      dataIndex: "idx",
      width: "30%",
      editable: false,
    },
    {
      title: "创建时间",
      dataIndex: "created_at",
      valueType: "dateTime",
      renderText(text, record, index, action) {
        return dayjs(text).format("YYYY-MM-DD HH:mm:ss");
      },
      editable: false,
    },
  ];

  return (
    <EditableProTable<DataSourceType>
      rowKey="id"
      recordCreatorProps={{
        newRecordType: "dataSource",
        record: (idx) => {
          const newRecord = {
            idx,
            id: (Math.random() * 1000000).toFixed(0),
            created_at: dayjs().valueOf(),
          };
          console.log(`generate ${idx} row data:`, newRecord);
          return newRecord;
        },
      }}
      columns={columns}
      editable={{
        type: "multiple",
      }}
    />
  );
};

© 版本信息

  • ProComponents 版本: 2.6.49

截图

image

walker27 avatar Feb 20 '24 09:02 walker27

确实,我也发现这个问题了,感觉反人类,当我需要根据最新的数据,生成新增的一行数据时,就会出现问题! 而且每次新增一行,record方法都会触发两次!

qyjandroid avatar Jun 11 '25 06:06 qyjandroid