是否可以在构造函数中设置模具组件的ID?

时间:2019-01-04 18:59:07

标签: element id stenciljs

我想创建一个创建时具有唯一id值的Stencil组件。我有一个函数,每次被调用时都会返回一个唯一的ID,因此在我的组件中,我已经定义了:

@Element() _el! : HTMLStencilElement;

componentWillLoad() {
  this._el.id = getUniqueId();
}

问题在于在组件呈现:(表示是否这样做

之前,未设置 这个id
document.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设置?

0 个答案:

没有答案