Удалить тег компонента в StencilJS

Я пытаюсь удалить тег вызываемого компонента из HTML, чтобы предотвратить некорректный CSS из внешних библиотек и просто показать внутреннее содержимое.

something.component.html

<div>
    Hello World
</div>

another.component.html

<div>
   <app-something [config]="somethingConfig"></app-something>
</div>

Затем выводит:

 <div>
    <app-something>
      <div>
          Hello World
      </div>
    </app-something>
</div>

И я хочу:

<div>
  <div>
     Hello World
  </div>
</div>


person mahyar    schedule 24.09.2020    source источник


Ответы (1)


Это невозможно из-за природы веб-компонентов, которые выводит Stencil.

Что вы можете сделать вместо этого: используйте правило CSS display: contents в своем компоненте, которое не позволяет ему создавать поле в макете (см. https://caniuse.com/css-display-contents, все еще в некоторой степени экспериментально).


В Stencil также есть функциональные компоненты (https://stenciljs.com/docs/functional-components), которые не генерируют родительский элемент, но доступны только в JSX, поэтому вам всегда понадобится хотя бы один родительский компонент Stencil (чтобы вы могли визуализировать некоторый JSX).

person Simon Hänisch    schedule 24.09.2020
comment
Спасибо, но у меня есть такое правило в сторонней библиотеке .ui.labeled.button ›.button, а тег компонента не позволяет ему работать - person mahyar; 28.09.2020