antd pro component - EditableProTable
受控情况之下,改变 dataSource之后,但是表格编辑组件还是记录上次编辑状态记录的数据,没有及时更新,解决办法就是手动更新表单(其实整个表格就是一个form)
开始干活,上代码!(代码直接从项目摘出来的,看起来有点乱,核心部分都在)
// 声明form实例
const [form] = Form.useForm();
console.log('打印formValues:',form.getFieldsValue());
<EditableProTable<OrderCargoDtoType>
// scroll={{ x: 1300 }}
rowKey="id"
columns={columnsArr(short_width, options, onSelect, onSearch)}
// request={requestTableData}
dataSource={dataSource}
pagination={pageConfig}
actionRef={tableRef}
//onChange={setDataSource}
rowSelection={{ ...rowSelection, checkStrictly: false }}
toolBarRender={() => {
return renderTableToolBar(save, handleExport, dataCensus, batch,openEdit);
}}
editable={{
form:form,
type: 'multiple',
.....
//这里是修改dataSource的地方,也是需要更新表单的地方
getData={(data: any) => {
modifyRowKeys.forEach((ele, index) => {
let i = dataSource.findIndex((item) => {
return item.id == ele;
});
for (let key in data) {
dataSource[i][key] = data[key];
}
});
setDataSource(dataSource);
//------------------就是这里!!!--------------
form.resetFields();
}}
.....