为了账号安全,请及时绑定邮箱和手机立即绑定

第一次拿不到数据,第二次拿到的是第一次的数据,后面每次都是拿到前一次的数据

第一次拿不到数据,第二次拿到的是第一次的数据,后面每次都是拿到前一次的数据

Qyouu 2019-05-12 13:04:08
第一次拿不到数据,第二次拿到的是第一次触发的数据,后面每次拿到的都是前一次触发的数据取数据: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
                            
查看完整回答
反对 回复 2019-05-12
  • 2 回答
  • 0 关注
  • 1214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信