【发布时间】:2020-03-23 05:20:29
【问题描述】:
目前,我有一个父组件,它渲染一个子组件,同时也将一个组件(模态,称为 Modal.vue)作为插槽传递给子组件。
父.vue
<ChildComponent :id='1>
<modal slot="modal" :postTitle="'test'" />
</ChildComponent>
Child.vue
export default {
props : ['id'],
data(){
return {
modalHeading : "Heading"
}
}
<template>
<slot name="modal"></slot>
</template>
Modal.vue
<script>
export default {
name: "model",
props: ["postTitle"],
data() {
return {
heading: "test"
};
},
mounted() {
console.log("mounted modal slot");
console.log(this.postTitle);
console.log(this.modalHeading);
};
</script>
<template>
<div>
<h2>{{ modalHeading }}</h2>
<h3>This will be the modal slot</h3>
<p>{{ postTitle }}</p>
</div>
</template>
我的问题是,如何在我的插槽组件中访问孩子的数据(和函数)?
我一直试图让它与作用域插槽一起工作,但似乎无法破解语法。
【问题讨论】:
-
您到底想达到什么目的?当然,作用域插槽可用于将 一些 的
Child组件数据共享到插槽 模板。但是功能呢?不要这么想。也仅仅因为您的modal组件在作用域插槽模板中使用并不能使其可以访问所有Child数据。您仍然需要通过道具将其传递给modal.... -
我试图基本上在模态槽中显示一些子数据。本质上,父组件是一个页面,子组件是一个表格,插槽是一个模态。对于单击的每个表格行,都会出现一个模式,其中包含表格数据。你会如何建议这样做?
标签: vue.js vuejs2 vuejs-slots