v-slot带有属性(v-slot:slotName="xxx")传递的具名插槽在子组件中无法通过$slots获取该插槽内容($slots为空对象)的解决办法
本例讨论的是带有属性属性传递的情况,即有等号后面这段的情况。如果没有,v-slot:slotName是可以正常获取到的(虽然$slots显示为空,但$slots.slotName还是能正确获取到的,可通过设计一个点击按钮,打印log的方式验证)
解决办法
slot标签有一个特点,当没有该具名插槽时,会默认显示标签包裹的内容。隐藏可使用不断嵌套的方式代替v-if v-else的方式,如:
<slot name="slotName">
当没有slotName具名插槽时,会显示该内容
<slot name="slotName1">
当没有slotName1具名插槽时,会显示该内容
</slot>
</slot>