vue项目抛出_self.$scopedSlots.default is not a function异常——已解决

 

做项目的时候不知道为啥抛出了一个这样的错误:_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>


推荐阅读:

本文为博主原创文章,知识共享,开源精神,转载注明出处。