如何在阴影DOM中检查组件的(初始)渲染状态(而非更新状态)

时间:2019-02-25 18:47:31

标签: polymer web-component lit-element

question之后,我想问一下检查影子DOM中组件初始渲染状态(而不是更新状态)的适当方法。是否有与document.readyStatepromise类似的东西?

我也曾尝试这样做:

getItems() {
    this.updateComplete
      .then(() => {
        this.nodesLists = this.shadowRoot.querySelectorAll(".name");
      })
      .then(...)
  }

也失败了。

Tia

1 个答案:

答案 0 :(得分:2)

import requests import sys prefixURL = 'http://www.omdbapi.com/?t=' suffixURL = '&apikey=xxx4s23' text_file = open("url.txt", "w") with open('print.txt', 'r') as f: for i in f: uri = prefixURL + i.rstrip(' \n\t') + suffixURL print uri text_file.write(url) text_file.write('\n') text_file.close() text_file = open("responses.txt", "w") with open('url.txt', 'r') as f2: for i in f2: url = i.strip(' \n\t') batch = requests.get(i.rstrip(' \n\t')) data = batch.text print data text_file.write(data) text_file.write('\n') text_file.close() (或await this.updateComplete)是等到元素没有待处理的渲染工作之前的正确方法,例如查询元素的呈现状态,因此只要在运行this.updateComplete.then(...)之前将元素连接到文档,代码就应该可以正常工作。

示例:https://jsbin.com/jiquhez/edit?html,console,output

但是请注意,如果在元素连接之前等待getItems,并且元素未设置会触发渲染的属性,则updateComplete当前会在首先渲染。这可能是意外错误,已提交到lit-element/#594

请注意,根据您的用例,您可能还想研究使用firstUpdated生命周期方法。您可以在类上实现此方法,以在元素的第一个更新/渲染周期后执行一次性工作(例如用于选择不会根据渲染而改变的静态节点)。

示例:https://jsbin.com/limikas/edit?html,console,output