我想制作一个网格组件,它可以接受额外的列单元.

<grid>
  <td slot="additional-column">...</td>
</grid>

在实际组件中:

<template>
   <table>
     <div v-for="item in items">
       ...
       <slot name="additional-column"></slot>
     </div>
   </table>
</template>

不幸的是,插槽开始重复,这是vuejs不喜欢的.

在同一渲染树中发现插槽"附加列"重复存在-这可能会导致渲染错误.

有人知道我该怎么处理这个问题吗?

提前谢谢!

推荐答案

This肯定是你的问题.你也可以这样做(如here所述).见第Destructuring子目前的最后一段.

起源:

<grid>
  <td :slot="['additional-column', item].join('-')" v-for="item in items">
  ...
  </td>
</grid>

子元素:

<table>
    <div v-for="item in items">
        ...
        <slot :name="['additional-column', item].join('-')"></slot>
    </div>
</table>

PS:我还没有试过.如果你有困难,我可以做一把小提琴和你分享.

Vue.js相关问答推荐

从组件中检索 Shopware CMS 编辑器中的自定义实体数据

VuetifyJS:如何摆脱 v-stepper 组件的提升?

v-for 内部的组件

VueJs this.method 不是函数?如何在 Vuejs 的另一个方法中调用一个方法?

使用 Vue Router 设置页面标题

VueJS + VueRouter:有条件地禁用路由

事件 click点击的无效处理程序:未定义

单击链接会更改 url,但不会更改页面上的内容/数据

Nuxt 打开链接到模态

Vue路由安全

样式化 Vue 插槽

是否可以从 vue-devtools 中排除 vue 事件和 vuex Mutations?

如何从 keep-alive 中销毁缓存的 Vue 组件?

何时使用

标签中的 href 赋值

如何从浏览器的源中删除 webpack://

使用 CloudFront 部署在 S3 上的 VueJS 应用程序的指定的密钥不存在

Vue-i18n - 无法读取未定义的属性配置

如何在 vue3 中的setup方法中发出事件?

Vue.js 显示空格(换行符)