l***@163.com
l***@163.com
  • 发布:2023-12-01 14:49
  • 更新:2023-12-01 15:26
  • 阅读:221

【报Bug】默认插槽内容,在h5和app下显示,微信小程序下不显示

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macos 14.0 (23A344)

第三方开发者工具版本号: vscode 1.84.2 (Universal)

基础库版本号: 3.0.0-3090820231124001

项目创建方式: CLI

CLI版本号: @vue/cli 5.0.8

示例代码:

// 子组件

<template>  
    <view>  
        <view>组件内部控件</view>  
        <slot name="body">  
            <view><text>默认插槽内容</text></view>  
        </slot>  
    </view>  
</template>  

<script setup></script>  

<style lang="scss" scoped></style>

// 父组件

<template>  
    <view>  
        <unit-component>  
            <template #body>  
                <view v-if="show">传入内容</view>  
            </template>  
        </unit-component>  
    </view>  
</template>  

<script setup>  
import { ref } from 'vue';  
import unitComponent from './components/unit-component';  
const show = ref(false);  
</script>  

<style lang="scss" scoped></style>

操作步骤:

1

预期结果:

1

实际结果:

1

bug描述:

默认插槽内容,在h5和app下显示,微信小程序不显示

2023-12-01 14:49 负责人:无 分享
已邀请:
爱豆豆

爱豆豆 - 办法总比困难多

这问题应该是微信小程序端的问题 可以去微信社区问问
微信小程序识别的应该是template而不是里面的有无内容 所以你隐藏 template 中的view 并不会显示插槽内的默认内容
你试试可以把template用block包裹起来 在block上做v-if 把整个插槽隐藏

<template>  
    <view>  
        <unit-component>  
            <block v-if="show">  
                <template #body>  
                    <view>传入内容</view>  
                </template>  
            </block>  
        </unit-component>  
    </view>  
</template>  

<script setup>  
    import {  
        ref  
    } from 'vue';  
    import unitComponent from './components/unit-component';  
    const show = ref(false);  
</script>  

<style lang="scss" scoped></style>

要回复问题请先登录注册