1***@qq.com
1***@qq.com
  • 发布:2024-09-08 11:30
  • 更新:2024-09-09 13:32
  • 阅读:180

【报Bug】uni-popup组件如果父组件中使用插槽,内容插槽有输入框(输入框绑定父组件传入的model),输入会关闭popup的弹出框

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 23H2

HBuilderX类型: 正式

HBuilderX版本号: 4.24

浏览器平台: Chrome

浏览器版本: 128.0.6613.120

项目创建方式: HBuilderX

操作步骤:

1.创建组件和描述中相同
2.使用组件和描述中相同
3.在输入框中输入任意字符

预期结果:

popup的内容区关闭

实际结果:

popup的内容区关闭

bug描述:

app端是正常的,h5会有问题
组件代码:

<template>  
    <view>  
        <slot name="custom-content"></slot>  
        <uni-popup ref="popup_ref">  
            <view style="height: 100px;">  
                <uni-easyinput v-model="inputModel"></uni-easyinput>  
            </view>  
        </uni-popup>  
    </view>  
</template>  

<script setup>  
    import {ref, onMounted, getCurrentInstance} from 'vue'  
    const inputModel = defineModel({default: []})  

    const this_ = getCurrentInstance()  
    onMounted(() =>{  
        this_.refs['popup_ref'].open('bottom')  
    })  
</script>  

<style>  
</style>

然后使用组件的方式:

<template>  
    <view>  
        <bug-popup v-model="inputModel">  
            <template v-slot:custom-content>插槽内容</template>  
        </bug-popup>  
    </view>  
</template>  

<script setup>  
    import {ref} from 'vue'   
    const inputModel = ref('')  
</script>

在h5端像输入框输入内容会导致popup的内容区关闭

2024-09-08 11:30 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者)

本来想试着把传入v-model改成触发事件再在父组件里修改相关的值替代一下,没想到除了Model其他绑定的响应式属性只要被改了,就会触发这个bug。就是说封装组件,不能绑定响应式属性和插槽同时使用,否则就触发这个bug。

BFC

BFC

已确认bug,感谢反馈, 下个版本修复

BFC

BFC

找到项目中 uni_modules/uni-transition/components/uni-transition/uni-transition.vue,参照 pull 949 改动,临时修复此问题

要回复问题请先登录注册