Как я могу вызвать повторную визуализацию внука с освещенным элементом? - PullRequest
0 голосов
/ 23 мая 2019

У меня следующая структура

<my-app>
   <my-modal> <!-- 
     <my-form></my-form>
   </my-modal>
</my-app>

my-modal разработан как универсальная оболочка, которую я использую, чтобы обернуть множество различных диалогов в моем приложении. В нем я слушаю изменение местоположения, и render html '<slot></slot>'

Моя проблема в том, что, хотя my-modal ведет себя правильно, показывая и скрывая форму, сама форма никогда не перерисовывается, и поэтому всегда отображается с устаревшим содержимым. В настоящее время я использую IntersectionObserver для стрельбы, когда это видно, но это выглядит очень странно и вызывает другие проблемы.

Есть ли способ, которым my-modal может заставить своих потомков перерисовать, хотя единственный, о котором он знает, это <slot></slot>. Я не хочу, чтобы my-app знал что-либо о поведении my-modal.

1 Ответ

1 голос
/ 25 мая 2019

Может не подходить

Я не хочу, чтобы мое приложение знало что-либо о поведении моего модала

, но вы можете добавить функцию requestFullUpdate в my-modal, которая затем перебирает все дочерние элементы и выполняет requestUpdate для всех них. Может быть сделано при открытии / закрытии или около того ... или даже в интервале: p

Тем не менее, у меня есть ощущение, что это просто излечивает «побочный эффект» от неподходящей структуры ... может быть, попытаться взглянуть на это с другой точки зрения - может быть, что-то вроде этого? https://stackoverflow.com/a/56297264/3227915

...