Корень тени LitElement после события загрузки стилей

У меня проблема, мне нужно обработать событие после того, как стили CSS были загружены в мой компонент. Я пытался использовать жизненный цикл освещенных элементов, но они все равно запускаются слишком рано.

Я пытаюсь получить начальную позицию элемента DOM и другие данные, но я получаю начальную позицию, в которой после загрузки стилей эта позиция меняется?

Как сделать так, чтобы стили загружались первыми или какое-либо событие после загрузки стилей?


person Szymon Stach    schedule 21.02.2020    source источник


Ответы (1)


Обычно вам нужен жизненный цикл firstUpdated:

Вызывается после первого обновления DOM элемента, непосредственно перед вызовом метода update. Реализуйте firstUpdated для выполнения разовой работы после создания шаблона элемента.

Если ваши элементы все еще загружаются даже после запуска firstUpdated, вы можете подождать еще один цикл, чтобы быть в безопасности:

setTimeout(() => { /* code for checking DOM styles */ }, timeInMilliseconds);

timeInMilliseconds, скорее всего, будет только 0, но вам может потребоваться немного больше времени, потому что ваши стили меняются за пределами обычных стилей. Это также может иметь место, если у вас есть какие-либо CSS animation или transition, которые могут влиять на отображение ваших элементов.

Если все вышеперечисленное выглядит правильно, я рекомендую открыть задачу на странице lit-element github Так как этому еще активно способствовали.

person Ryan Saunders    schedule 21.02.2020