@MikUrrey

Как передать содержимое именованного слота потомку в render-функции?

1) Есть компонент, который с помощью render-функции отображает другой компонент:
export default {
   name: "form-element",
   render(h) {
      let data = {
          //.....................................
      };
      //.....................................
      return h(component, data);
   }
}

2) Отображаемый компонент имеет именованный слот `prepend-inner`, как передать его содержимое через `form-element`?
<form-element key="site">
   <template slot="prepend-inner">
      <img :src="`${form.site}/favicon.ico`">
   </template> 
</form-element>
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
@MikUrrey Автор вопроса
Оказалось все просто, делюсь решением.
Нужно передать статичные слоты в качестве потомков (третий аргумент createElement), и проставлять в data каждого потомка соответствующий slot:
export default {
   name: "form-element",
   render(h) {
      let data = {
          //.....................................
      };
      //.....................................
      let slots = []
      for(let slot in this.$slots) {
        slots.push(h('template', {slot}, this.$slots[slot]))
      }
      return h(component, data, slots);
   }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы