0

我有以下结构

<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的行为。

4

1 回答 1

2

可能不适合

我不希望 my-app 了解有关 my-modal 行为的任何信息

但是您可以添加一个函数requestFullUpdatemy-modal然后迭代所有孩子并requestUpdate为所有孩子做一个。可以在打开/关闭时完成......甚至在间隔内完成:p

但是,我有一种感觉,这只是从不合适的结构中治愈了“副作用”……也许尝试从不同的角度看待它——也许是这样的?https://stackoverflow.com/a/56297264/3227915

于 2019-05-25T00:16:43.260 回答