解决elementui中el-table表格首次expand展开不能正常渲染展开页面里面的表格内容
核心代码是在渲染不出现数据的el-table上面加上:key="updateChildTable" 属性,在绑定数据的时候实时修改updateChildTable的值即可
<el-table :data="tableData" ref="table" @row-click="rowClick" @expand-change="expandChange"> <!-- 展开内容---------------------------------------- --> <el-table-column type="expand"> <template slot-scope="scope"> <el-table :key="updateChildTable" //这句是关键代码,修改key对应的变量值,刷新表格渲染 :data="scope.row.children" > <el-table-column prop="字段键值" label="列名" width="300"> <template slot-scope="scope"> {{ scope.row.字段键值 }} </template> </el-table-column> </el-table> </template> </el-table-column> <!-- ---------------------------------------- --> </el-table> data(){ return{ updateChildTable:false,//刷新表格专用 } }, // 展开 rowClick(row, column, event) { row.isExpand = !row.isExpand; this.$refs.table.toggleRowExpansion(row, row.isExpand); }, // 监听展开变化 expandChange(row, expanded) { let isExpand = expanded.find(v => v.ID == row.ID);//如果有匹配项代表已经展开 row.isExpand = isExpand; if (isExpand) { this.$d.接口({ ID: row.ID, }, { s: (d) => { row.children = d; this.updateChildTable = !this.updateChildTable;//实时修改这个值刷新子表格渲染数据 } }); } },