首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向下传递激活器插槽

向下传递激活器插槽
EN

Stack Overflow用户
提问于 2019-10-01 17:04:49
回答 1查看 253关注 0票数 1

在Vue 1.x中,我经常这样做:

Component1:

代码语言:javascript
复制
<template>
    <v-dialog>
        <slot name="activator" slot="activator"></slot>
    </v-dialog>
</template>

Component2:

代码语言:javascript
复制
<template>
    <component-1>
        <slot name="activator" slot="activator"></slot>
    </component-1>
</template>

所以我可以在Component3中这样做:

代码语言:javascript
复制
<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”模板替换为以下内容不起作用:

代码语言:javascript
复制
<template v-slot:activator="{on}">
    <slot name="activator" v-on="on"></slot>
</template>

我找不到一种方法来代理从v-dialog一直到组件3的“激活器”插槽。

EN

回答 1

Stack Overflow用户

发布于 2019-10-02 04:09:33

让它正常工作,解决方案是将整个作用域重新绑定到“向下传递”的插槽,而不仅仅是像这样的v-on信号处理程序:

代码语言:javascript
复制
<template v-slot:activator="scope">
  <slot name="activator" v-bind="scope"></slot>
</template>

(详见此另一答案)

vue - how to pass down slots inside wrapper component?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58181458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档