我想存储父组件的宽度并将其传递给
<slot />
中的子组件:
<Parent bind:clientWidth={width}>
<Child width={width}></Child>
</Parent>
我知道我可以在普通的 html 元素上使用
bind:clientWidth
,如下所示:
<div bind:clientWidth={width}></div>
但由于某种原因,这不适用于 svelte 组件:
<Component bind:clientWidth={width}></Component>
如何获取父级宽度?也许有一个解决方案不涉及声明一个单独的变量来传递给子进程?
组件可以完全为空,并且包含多个元素而无需包装器,它们没有内在大小。
如果您可以控制父级的实现,则可以在内部获取某个元素的大小并将其作为 slot 属性 传递。或者您可以添加一个包装元素并使用它来测量。
想不出一种方法来避免在某处有额外的变量。