У меня есть компоненты Stencil.JS:
import {Component, Prop, h} from '@stencil/core';
@Component({
tag: 'my-comp',
styleUrl: 'my-comp.css',
// shadow: true
})
export class MyComp {
@Prop() active: boolean = false;
render() {
return this.active ? <div>
<slot></slot>
</div> : null;
}
}
Я ожидаю, что содержимое слота не будет отображаться, когда я использую компонент следующим образом:
<my-comp>
<p>I'm hidden!</p>
</my-comp>
И, на самом деле, все работает так, как ожидалось, когда для "shadow" установлено значение true в Component decorator.
Но когда теневой DOM отключен, компонент показывает содержимое слота независимо от значения this.active.
У меня такое ощущение, что я не понимаю, как рендер работает со слотами. Не могли бы вы объяснить это мне? Буду очень признателен, если вы знаете, как обойти эту проблему, не скрывая содержимое слота программно.