【发布时间】:2021-01-28 18:24:52
【问题描述】:
我正在用 svelte 创建一个 Row 组件,它可以接收任意数量的单元格。
这行得通:
<Row
header
cells={["First", "Second"]}
/>
这样:
<Row
header
cells={["1", "2", "3", "4"]}
/>
但是,有没有一种方法可以传递自定义组件而不是原始值?以下导致语法错误(我可以在 JSX 中执行此操作):
<Row
header
cells={[<div />, <button />, <span />]}
/>
编辑:
这是我的行代码
<script lang="ts">
export let cells
export let widths
export let header
const sum = widths.reduce((a, b) => a + b, 0)
for (let i = 0; i < widths.length; i++ ){
console.log(widths[i] / sum * 100)
}
</script>
<div class="row" class:header>
{#each cells as cell, i}
<div class="cell" style={`width: ${widths[i] / sum * 100}%`}>
{ cell }
</div>
{/each}
</div>
【问题讨论】:
-
我不认为你可以用苗条做到这一点,但对于
component composition,你可以使用slots
标签: svelte