Можно ли установить идентификатор компонента Stencil в конструкторе?
Я хочу создать компонент Stencil, который имеет уникальное значение id при его создании. У меня есть функция, которая возвращает уникальный идентификатор каждый раз, когда он вызывается так в моем компоненте, который я определил:
@Element() _el! : HTMLStencilElement;
componentWillLoad() {
this._el.id = getUniqueId();
}
Проблема в том, что этот идентификатор не установлен до тех пор, пока компонент не рендерится:(
document.createElement('my-element').id
Это возвращает мне пустую строку. Чтобы получить значение идентификатора, я должен сделать следующее:
const el = document.createElement('my-element');
el.componentOnReady();
el.id //now id is uniquely defined
Есть ли способ установить идентификатор, чтобы мне не пришлось ждать, пока компонент будет готов? Я пытался добавить
constructor() {
this._el.id = getUniqueId();
}
но это дает ошибку о том, что this._el не определено. Я тоже пробовал
hostData() {
return {
id : getUniqueId()
};
}
но это тоже не устанавливает идентификатор, пока элемент не отображается
Когда @Element _el действительно устанавливается Stencil?