gpt4 book ai didi

ionic-framework - Stencil.js 呈现插槽内容,如果 render() 返回 null 则事件

转载 作者:行者123 更新时间:2023-12-04 14:34:13 24 4
gpt4 key购买 nike

我有一个 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>

而且,实际上它按预期工作,当“阴影”在组件装饰器中设置为 true 时。
但是,当禁用 shadow DOM 时,无论 this.active 的值如何,组件都会显示 slot 的内容。

我有一种感觉,我不明白渲染是如何与插槽一起工作的。你能给我解释一下吗?如果您知道如何在不以编程方式隐藏插槽内容的情况下解决此问题,我将不胜感激。

最佳答案

接受的答案是不正确的。 Stencil绝对支持<slot> ,即使在非 shadow成分。这就是 Stencil 中内容投影的工作原理。
有一些警告; <slot>元素本身实际上并不是由 Stencil 在 lightdom 组件中渲染的,它们仅用作 Stencil 放置子元素的位置标记。
此外,根据这个问题,不支持条件渲染槽:
https://github.com/ionic-team/stencil/issues/399
我们使用 <slot>在 Stencil lightdom 组件中,并且基本上已经退回到切换 display: none<slot> 周围的 wrapper 上以此目的。这并不理想,但它有效。

关于ionic-framework - Stencil.js 呈现插槽内容,如果 render() 返回 null 则事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56483281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com