首页 > 解决方案 > Vuejs - 使用模板将父组件道具传递给子元素

问题描述

我要解决的问题是我希望子组件在 v-expansion 面板展开/收缩时做出反应。

通常这将是微不足道的,但是,我试图通过作用域插槽将值从 vuetify 组件中的 prop 传递到组件。因为我在循环中渲染子组件,所以不能只使用 Data 来绑定道具。

  <v-expansion-panel expand>    
   <v-expansion-panel-content 
     v-for="item in this.items"
     :key="item.key">
     <div slot="header">
       content
     </div>          
   <slot :items="item.children"></slot>
  </v-expansion-panel-content>
 </v-expansion-panel>  

v-expansion-panel-content 有一个叫做 value 的属性。我需要将该道具绑定到插槽。理想情况下,我想实现这样的目标:

<slot :items="item.children" :panelValue="value"></slot>

任何想法将不胜感激。

标签: javascriptvuejs2vuetify.js

解决方案


我已经解决了这个问题,但方式不太理想。

<v-expansion-panel expand>    
  <v-expansion-panel-content
    v-for="item in this.items"
    :key="item.key"
    v-model="item.isOpen">
    <div slot="header">
      content
    </div>       
  <slot :items="item.children" :isVisible="item.isOpen"></slot>
</v-expansion-panel-content>


推荐阅读