uni-app 微信小程序端作用域插槽不显式写出参数时无法展示父组件传入内容

cs7cruho  于 4个月前  发布在  uni-app
关注(0)|答案(2)|浏览(43)

SomeComp.vue

<template>
  <view class="some-comp">
    <slot :value="1"></slot>
  </view>
</template>

Parent.vue

<template>
  <some-comp>
    <!-- 写了scope可以展示 -->
    <template #default="scope">
      <text>111</text>
    </template>
  </some-comp>

  <some-comp>
    <!-- 不写scope无法展示 -->
    <template #default>
      <text>111</text>
    </template>
  </some-comp>
</template>

<script lang="ts" setup>
import SomeComp from "./SomeComp.vue";
</script>

编译结果

<view class="some-comp">
  <slot name="d"></slot>
</view>
<some-comp u-s="{{['d']}}" u-i="6a889542-0" bind:__l="__l">
  <text>111</text>
</some-comp>

<some-comp u-s="{{['d']}}" u-i="6a889542-1" bind:__l="__l">
  <view wx:for="{{a}}" wx:for-item="scope" wx:key="a" slot="{{scope.b}}">
    <text>111</text>
  </view>
</some-comp>
错误描述

微信小程序端,当组件内slot带参数时,uniapp会为其生成动态名称,若父组件不显式写出作用域参数,则不会为传入内容动态生成slot名称,导致无法展示传入内容

另外,在v-for中时,若slot没有作用域参数时,不会为slot动态生成名称,会导致传入内容只能展示一条

版本信息
  • uniapp:3.0.0-4000820240401001
  • vue:3.3.11

相关问题