第一次拿不到数据,第二次拿到的是第一次触发的数据,后面每次拿到的都是前一次触发的数据取数据:getExpandData=(param)=>{getModelVersion(param).then((result)=>{if(result){this.setState({subData:result,//过滤之后的数据});}});};嵌套的子表格展开:expandFunction=(expanded,record)=>{const{showListDom}=this.state;if(record){//未展开constparam={modelId:record.id,};this.getExpandData(param);//进不去constsubList=this.state.subData.map((v)=>{return{...v,todo:v.status,};});constdom=();constId=record.id;constitem={};item[Id]=dom;this.setState({showListDom:{...showListDom,...item,},});}};render方法内:record.id||record.key}columns={columns}onChange={this.handleStandardTableChange}pagination={this.state.pagination}loading={this.state.loading}expandedRowRender={(record)=>{returnthis.state.showListDom[record.id]||null;}}onExpand={(expanded,record)=>this.expandFunction(expanded,record)||null}/>
2 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
原因就是getExpandData是异步的,你没有等待它返回数据就继续执行后面代码了。解决方式就是getExpandData的回调函数中拿到数据后继续render
添加回答
举报
0/150
提交
取消