iview报错[Vue warn]: Error in render: "TypeError: ctx.injections.tableRoot.$scopedSlots[ctx.props

网上查到的都是同一个,说是因为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-管理可复用的元素

上一篇:几个可以整蛊你朋友的 Python 程序


下一篇:【POJ】2159