在Vue 1.x中,我经常这样做:
Component1:
<template>
<v-dialog>
<slot name="activator" slot="activator"></slot>
</v-dialog>
</template>Component2:
<template>
<component-1>
<slot name="activator" slot="activator"></slot>
</component-1>
</template>所以我可以在Component3中这样做:
<template>
<h3>I'm component 3</h3>
<component-2>
<template slot="activator">
<v-btn></v-btn>
</template>
</component-2>
</template>它工作得很好。但是我如何使用Vue的2.6 v-slot语法来做同样的事情呢?
将组件1和组件2中的“slot”模板替换为以下内容不起作用:
<template v-slot:activator="{on}">
<slot name="activator" v-on="on"></slot>
</template>我找不到一种方法来代理从v-dialog一直到组件3的“激活器”插槽。
发布于 2019-10-02 04:09:33
让它正常工作,解决方案是将整个作用域重新绑定到“向下传递”的插槽,而不仅仅是像这样的v-on信号处理程序:
<template v-slot:activator="scope">
<slot name="activator" v-bind="scope"></slot>
</template>(详见此另一答案)
https://stackoverflow.com/questions/58181458
复制相似问题