Vue.js中子组件中迭代槽的迭代槽内容

Posted

技术标签:

【中文标题】Vue.js中子组件中迭代槽的迭代槽内容【英文标题】:Iterating slot content for iterated slots in child component in Vue.js 【发布时间】:2020-12-27 01:16:56 【问题描述】:

我有一个子组件(我无法编辑),其中对象中的每一行都在具有特定插槽的 div 内呈现,并且我需要为每个元素从父级传递数据。我正在尝试遍历父组件中对象的每个元素,生成一个插槽并将所需的代码传递给子组件,但不幸的是我无法做到,也找不到任何支持我的材料。

子组件:

<div class="slotchildren" v-for="(child, childindex) in row.elementChildren" :key="childindex">

  <span>element nr. child.id</span>
  <slot :name="`element-child-$row[idlabel]-$childindex`" :row="child">
    ...
  </slot>
</div>

父组件(不工作):

<template v-for="row in rows"> -->
  <template  v-slot:`element-row-$row.id`="row">
        
        //--> [vue/valid-v-slot] 'v-slot' directive doesn't support any modifier
        //--> [vue/valid-v-slot] 'v-slot' directive must be owned by a custom element, but 'template' is not.

    <span>row.name</span>

  </template>
</template>

这样的事情可行吗?如何实现?如果不是,考虑到我无法编辑子组件,有什么可行的解决方法?

提前致谢。

【问题讨论】:

【参考方案1】:

我用以下合成器解决了它:

<template v-for="row in rows" v-slot:[`element-row-$row.id`]>
  ..
</template> 

【讨论】:

以上是关于Vue.js中子组件中迭代槽的迭代槽内容的主要内容,如果未能解决你的问题,请参考以下文章

Vue Js 中的 Key 和 value 如何迭代

使用 Vue JS Typescript 迭代一个对象 -> 数组 -> 对象

vue-language-server :迭代中的元素期望有 'v-bind:key' 指令

Vue2.0中v-for迭代语法变化(keyindex)

vue.js(19)--vue中子组件调用父组件的方法

从Preference组件迭代看Jetpack发展历史