做项目的时候不知道为啥抛出了一个这样的错误:_self.$scopedSlots.default is not a function
,查了一下,具体原因有两种:
原因:
1、html中多出使用v-if导致渲染导致判断上的凌乱,使用表格时做了v-if判断;首次渲染没有问题;反复操作便会报错;
2、使用多个<el-table>
导致。
解决的办法可以是:
1、用v-show替代v-if;
2、给每个<el-table>
加个key属性(页面中有多个table时,加key做区分,不然就会保错) <el-table :data="tableDataInstall" key="tableDataInstall">
如果你也为<el-table>
设置了key值,使用v-show代替v-if虽然不抛出错误了,不过你更需要的是v-if。那你可以使用一下的方法。
把需要v-if的html集中在一个<template>
中显示。
<!-- start定时列表 -->
<el-dialog title="定时列表" :visible.sync="dialogTimerList">
<el-table :data="timerList" key="dialogTimerList">
<template v-if="this.energyRankType==1">
<el-table-column property="sensor_id" label="定时组ID"></el-table-column>
<el-table-column property="title" label="定时组名称"></el-table-column>
</template>
<!-- 空开 -->
<template v-else>
<el-table-column property="autoid" label="定时ID"></el-table-column>
<el-table-column property="channel" label="线路地址"></el-table-column>
</template>
<!-- end空开 -->
</el-table>
</el-dialog>
推荐阅读: