У меня есть пользовательский компонент, который должен скрывать содержимое, когда я устанавливаю логическое свойство в false. Любое другое свойство отражается, кроме этого. Должно быть, я что-то делаю не так.
static get properties(){
title: {
type: String,
attribute: 'title',
},
titleEnable: {
type: Boolean,
attribute: 'title-enable',
},
}
constructor() {
super();
this.titleEnable=true;
this.title="default";
}
render(){
return html`
${this.titleEnable
? html`
<p class="title" ?hidden="${!this.titleEnable}">${this.title}</p>
`
: html ``}
`
}
Если я использую этот компонент, например <my-component></my-component>
в файле HTML, он показывает: по умолчанию, как и ожидалось.
Если я использую его таким образом : <my-component title="New Title"></my-component>
отображается: Новый заголовок, как и ожидалось.
НО, если я попытаюсь скрыть его <my-component title-enable="false"></my-component>
, логическое значение просто не изменится. Я пробовал! Title-enable, title-enable = 'false ", .titleEnable = false и все варианты, которые вы можете себе представить. Меня больше всего бесит то, что всякий раз, когда я устанавливаю в конструкторе this.titleEnable = false и Я просто объявляю переменную БЕЗ значения в теге, и она принимает значение ИСТИНА, появляется «по умолчанию». <my-component title-enable></my-component>
Я полностью потерян.