Я пытаюсь использовать бумажный диалог в своем пользовательском компоненте.
Я хочу иметь возможность открывать диалоговое окно вне компонента. Как лучше всего это сделать? (все примеры работают непосредственно на компоненте)
Также диалоговое окно требует от меня вызова «open()», чтобы открыть его.
В примерах, которые я нашел, я нашел:
this.$.dialog.open();
Но это не работает с lit-element
Я заставил его работать с помощью shadowRoot, не уверен, что это лучший вариант:
render() {
return html`
<style>
</style>
<paper-dialog id="dialog">
<h2>Content</h2>
</paper-dialog>
`;
}
firstUpdated(changedProperties) {
console.log("firstUpdated called")
if (this.shown == "true")
{
// this.$.dialog.open();
this.shadowRoot.getElementById("dialog").open()
}
}
Я добавил свойство к моему элементу под названием «показано».
static get properties() {
return {
shown: Boolean,
Думаю, я мог бы передать это извне в свой компонент, но, похоже, это тоже не помогает (я могу установить его один раз с помощью свойства пользовательского элемента, но изменения в нем снаружи, похоже, не работают.