我想创建一个创建时具有唯一id值的Stencil组件。我有一个函数,每次被调用时都会返回一个唯一的ID,因此在我的组件中,我已经定义了:
@Element() _el! : HTMLStencilElement;
componentWillLoad() {
this._el.id = getUniqueId();
}
问题在于在组件呈现:(表示是否这样做
之前,未设置 这个iddocument.createElement('my-element').id
这向我返回一个空字符串。为了获得id值,我必须执行以下操作:
const el = document.createElement('my-element');
el.componentOnReady();
el.id //now id is uniquely defined
有没有一种方法可以设置id,这样我就不必等组件准备好了吗? 我尝试添加
constructor() {
this._el.id = getUniqueId();
}
,但这会给出错误消息,说明未定义 this._el 。 我也尝试过
hostData() {
return {
id : getUniqueId()
};
}
但是在呈现元素之前也不会设置ID
@Element _el何时真正由Stencil设置?