Svelte组件中如何一次性传递所有插槽?
如何在Svelte组件中一次性传递所有插槽?
Svelte没有像React中{children}那样直接传递所有插槽的原生语法,但可以通过内置的$$slots对象实现批量传递:
$$slots是组件的内置只读对象,包含了父组件传递过来的所有插槽(默认插槽对应的键为default)。你可以遍历它的键来动态渲染所有插槽,无需逐个声明:
<script> import Modal from 'components/Generic/Modal.svelte'; </script> <Modal {...$$restProps}> {#each Object.keys($$slots) as slotName} <slot name={slotName} /> {/each} </Modal>
这样所有父组件传入的插槽(包括默认插槽和具名插槽)都会自动传递给Modal组件,省去了手动逐个编写<slot>标签的麻烦。
内容的提问来源于stack exchange,提问作者Nir O.
相关产品推荐
相关产品推荐

