1

How can I render the header slot to the table component from the child component? This code is not working:

Table component

<template>
   <div>
      <slot name="header"></slot>
   </div>
</template>

Parent component

 <template>
   <div>
      <component :is="currentComponent" > </component> 
   </div>
 </template>
 <script>
 export default {
 data() {
   return {
      currentComponent: 'Table'
      };
   },
 };
 </script>

Child component

    <template>
       <div>
         <parent-component> 
           <template slot="header">
              <h1>test</h1>
           </template>
         </parent-component>
     </div>
   </template>

Tried the code above but it dosent work Expecting to render title from child component

Solution:

Table component

<template>
   <div>
      <slot name="header"></slot>
   </div>
</template>

Parent component

 **<template>
   <div>
      <component :is="currentComponent" >
         <template v-for="(_, name) in $slots" #[name]="slotData">
              <slot :name="name" v-bind="slotData || {}" />
         </template>
      </component> 
   </div>
 </template>**
 <script>
 export default {
 data() {
   return {
      currentComponent: 'Table'
      };
   },
 };
 </script>

Child component

    <template>
       <div>
         <parent-component> 
           <template slot="header">
              <h1>test</h1>
           </template>
         </parent-component>
     </div>
   </template>
pigeonhands
  • 3,066
  • 15
  • 26
Elior Zur
  • 11
  • 2

0 Answers0