我在 vuejs 中使用插槽范围。它工作得很好。我可以像这样将任何我想要的东西传递到插槽中:
<slot :item1="item1">
</slot>
问题是当我将一个函数作为 prop 传递时,它在父模板中是未定义的。所以这不起作用:
<slot :my-method="myMethod">
</slot>
在此示例中,myMethod 是在子 vue 组件上定义的方法。 (我使用的是打字稿,所以它是组件类上的一个方法)
关于如何通过插槽道具将子组件上定义的函数传回给父组件,以便可以从父组件的插槽代码中调用它,有什么想法吗?
原文由 user3413723 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新
这个答案是为旧的 v2.6 之前 的语法编写的。从那时起,此语法已被标记为弃用。核心功能保持不变,函数(方法)的工作方式与向上绑定(从子到父)的属性相同,但是定义现在使用
v-slot:default
。根据更新的文档( https://v2.vuejs.org/v2/guide/components-slots.html#Scoped-Slots ),
”`