第一次拿不到数据,第二次拿到的是第一次触发的数据,后面每次拿到的都是前一次触发的数据
取数据:
getExpandData = (param) => {
getModelVersion(param).then((result) => {
if (result) {
this.setState({
subData: result, // 过滤之后的数据
});
}
});
};
嵌套的子表格展开:
expandFunction = (expanded, record) => {
const { showListDom } = this.state;
if (record) { // 未展开
const param = {
modelId: record.id,
};
this.getExpandData(param); // 进不去
const subList = this.state.subData.map((v) => {
return {
...v,
todo: v.status,
};
});
const dom = (
<Table
columns={this.detailsColumns}
onChange={this.handleSubTableChange}
dataSource={subList}
rowKey={subList.id}
pagination={false}
/>);
const Id = record.id;
const item = {};
item[Id] = dom;
this.setState({
showListDom: {
...showListDom,
...item,
},
});
}
};
render方法内:
<Table
dataSource={this.state.SampleData}
rowKey={record => record.id || record.key}
columns={columns}
onChange={this.handleStandardTableChange}
pagination={this.state.pagination}
loading={this.state.loading}
expandedRowRender={(record) => { return this.state.showListDom[record.id] || null; }}
onExpand={(expanded, record) => this.expandFunction(expanded, record) || null}
/>
...肯定不行啊,
解决办法1,改造,回调进去
解决办法2,用async await改造,我就不写了