无论如何都知道一个命名插槽包含多少个孩子?在我的 Stencil 组件中,我的渲染函数中有这样的内容:
<div class="content">
<slot name="content"></slot>
</div>
我想要做的是根据插槽内有多少孩子来设置不同的 div.content 样式。如果插槽中没有子项,则 div.content 的 style.display='none',否则,我将一堆样式应用于 div.content,使子项正确显示在屏幕上。
我试着做:
const divEl = root.querySelector( 'div.content' );
if( divEl instanceof HTMLElement ) {
const slotEl = divEl.firstElementChild;
const hasChildren = slotEl && slotEl.childElementCount > 0;
if( !hasChildren ) {
divEl.style.display = 'none';
}
}
但是,即使我将项目插入插槽,这总是报告 hasChildren = false 。