Error in render: "TypeError: _self.$scopedSlots.default is not a function"解决方案

在使用element-ui 2.05 时遇到 Error in render: "TypeError: _self.$scopedSlots.default is not a function" 错误:

image.png

报这种错误的条件是: 我在el-table-column 上使用了v-if指令 且在el-table-column里面使用了 template slot-scope="scope"
image.png

此时只要在el-table-column上加key即可。

image.png

原因为 template slot需要一个父组件的key值(没有key值 则有可能会被复用),由于v-if 为false时,key值是取不到的,因此加key即可解决(保证slot绑定至正确的元素上)。
其实加key 可以让vue不复用:


image.png

另外通过查询资料,有的人遇到table 上有问题,其实也加个key即可。另外如果可以的话,加v-show 也可解决 ,这个也很容易理解,v-show 它会渲染组件 只是display:none罢了,而v-if 则是不渲染组件。但是需要注意的是v-show 不支持在 template元素上使用,因此在el-table-column上也不支持v-show。

你可能感兴趣的:(Error in render: "TypeError: _self.$scopedSlots.default is not a function"解决方案)