为什么我在v-for的插槽中只有一个元素?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我在v-for的插槽中只有一个元素?相关的知识,希望对你有一定的参考价值。
在我的Vue应用程序代码中,我有一个刷卡器组件。在这个组件中,我有一个v-for和一个插槽。
在父组件(Foo)中,我需要通过引用捕获放入插槽中的组件(baz)。问题是它的返回值仅一个元素而不是数组,就像我这样。
如何保持组件的这种形状并仍然获得我期望的数组?有可能吗?
import Vue from "vue";
Vue.config.productionTip = false;
const Foo = {
template: `
<div>
<swiper :items="items">
<baz ref="baz"/>
</swiper>
</div>
`,
data: function() {
return {
items: [1, 2, 3, 4, 5]
};
},
mounted: function() {
this.$nextTick().then(() => {
console.log({ refs: this.$refs.baz });
});
}
};
const Baz = { template: "<div>im baz</div>" };
const Swiper = {
template: `
<div class="swiper">
<div v-for="(item, i) in items" :key="i">
<slot></slot>
</div>
</div>
`,
props: ["items"]
};
Vue.component("foo", Foo);
Vue.component("baz", Baz);
Vue.component("swiper", Swiper);
new Vue({
render: h => h(Foo)
}).$mount("#app");
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.11/vue.js"></script>
答案
None以上是关于为什么我在v-for的插槽中只有一个元素?的主要内容,如果未能解决你的问题,请参考以下文章
Vues - 如何在渲染函数中使用 v-for 和作用域插槽