双层for循环中,slotscope中的变量未定义

组件中:
@/components/Table.vue

<template>

<div>

<table>

<thead>

<tr>

<td v-for="(item, index) in 5" :key="index">

<slot :name="'head' + index" :test="88"></slot>

</td>

</tr>

</thead>

<tbody>

<tr v-for="(item1, index1) in 5" :key="index1">

<td v-for="(item2, index2) in 5" :key="index2">

<slot :name="'body' + index1 + index2" :test2="99"></slot>

</td>

</tr>

</tbody>

</table>

</div>

</template>

页面中:
@/views/Home.vue

<template>

<div class="home">

<Table>

<template

v-for="(item, index) in 5"

slot-scope="{ test }"

:slot="'head' + index"

>

{{ test }}

</template>

<template v-for="(item1, index1) in 5">

<template v-for="(item2, index2) in 5">

<div

:slot="'body' + index1 + index2"

:key="index1 + index2"

slot-scope="{ test2 }"

>

{{ test2 }}

</div>

</template>

</template>

</Table>

</div>

</template>

<script>

import Table from '@/components/Table.vue'

export default {

name: 'Home',

components: {

Table

}

}

</script>

想封装一个课程表组件,这个时候,每个课程表的格子实际上是地位是一样的,所有我才想用横向和纵向两层循环来实现。

结果thead中的test变量可以正常显示,tbody中的test2无法显示,多了一层for循环怎么显示不了了,请问下要怎么解决?
运行结果

回答:

没见过这种双层的写法。不过没必要这样写吧,参照官网示例

你应该只传入一个渲染,然后在组件内把所有元素都吐出来,渲染即可。在使用elementui的时候也没有使用过双循环呀。

  <div

:slot="'body'"

:key="index1 + index2"

slot-scope="{ test2 }"

> {{ test2 }} </div>

以上是 双层for循环中,slotscope中的变量未定义 的全部内容, 来源链接: utcz.com/a/148869.html

回到顶部