在v-for循环vuejs中插入命名槽

时间:2017-11-01 20:47:56

标签: loops vue.js slot

有谁知道如何在循环中插入命名槽? 我已经得到了这样的代码: 儿童

<div v-for="num in nums" :key="num">
    <slot name="foo"></slot>
</div>

父母就像:

<foo-component :nums="nums>
    <template slot="foo">
        <span>Inside the foo component</span>
    </template>
</foo-component>

如果我这样做,控制台将显示此警告:

Duplicate presence of slot "foo" found in the same render tree - this will likely cause render errors.

有谁知道如何做到这一点?
提前致谢

1 个答案:

答案 0 :(得分:2)

插槽名称必须是唯一的。如果要在循环内创建插槽,可以在插槽名称中添加一个数字,例如:

<div v-for="num in nums" :key="num">
    <slot :name="'foo_' + num"></slot>
</div>

然后像这样使用它们:

<foo-component :nums="3">
    <template slot="foo_1">
        <span>Inside the foo component slot 1</span>
    </template>
    <template slot="foo_2">
        <span>Inside the foo component slot 2</span>
    </template>
    <template slot="foo_3">
        <span>Inside the foo component slot 3</span>
    </template>
</foo-component>