如何获取svelte组件的宽度

问题描述 投票:0回答:1

我想存储父组件的宽度并将其传递给

<slot />
中的子组件:

<Parent bind:clientWidth={width}>
   <Child width={width}></Child>
</Parent>

我知道我可以在普通的 html 元素上使用

bind:clientWidth
,如下所示:

<div bind:clientWidth={width}></div>

但由于某种原因,这不适用于 svelte 组件:

<Component bind:clientWidth={width}></Component>

如何获取父级宽度?也许有一个解决方案不涉及声明一个单独的变量来传递给子进程?

binding width svelte
1个回答
0
投票

组件可以完全为空,并且包含多个元素而无需包装器,它们没有内在大小。

如果您可以控制父级的实现,则可以在内部获取某个元素的大小并将其作为 slot 属性 传递。或者您可以添加一个包装元素并使用它来测量。

想不出一种方法来避免在某处有额外的变量。

© www.soinside.com 2019 - 2024. All rights reserved.