iview报错[Vue warn]: Error in render: "TypeError: ctx.injections.tableRoot.$scopedSlots[ctx.props.column.slot] is not a function"

网上查到的都是同一个,说是因为columns定义了N个slot,但是html中没有使用N个,这个虽然也是原因之一,但是不是我这的原因,我最后发现我的问题原因是:

HTML模板中定义了两个<Table>,table1有slot,table2没有 ,分别包在两个不同的<template>中并通过v-if控件显示哪个,初始是显示table1, 但触发切换条件时,显示table2,但再切换回table1时就会报错,解决方法给两个<Table>加上 key属性,

本质原因,因为没有给table加key属性,导致vue复用了table组件(第一个),当切换到table2时,因为table2的columns并没有定义slot,所以没有报错,但是再切回第一个table1时,会导致报错。

参考: https://cn.vuejs.org/v2/guide/conditional.html#用-key-管理可复用的元素

iview报错[Vue warn]: Error in render: "TypeError: ctx.injections.tableRoot.$scopedSlots[ctx.props.column.slot] is not a function"

上一篇:EOJ Monthly 2021.9


下一篇:字符串反码