e***@126.com
e***@126.com
  • 发布:2022-07-13 08:54
  • 更新:2022-07-13 10:41
  • 阅读:274

【报Bug】H5与微信小程序不一至

分类:uni-app

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

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 12.4 (21F79)

HBuilderX类型: 正式

HBuilderX版本号: 3.4.18

第三方开发者工具版本号: 1.06.2206271

基础库版本号: 2.25.0

项目创建方式: HBuilderX

示例代码:
var props = defineProps({  
        title: {  
            type: String,  
            default: 'kaooo',  
            required: false  
        },  
        age: {  
            type: Number,  
            default: 11  
        }  
    })

操作步骤:

index 页面中使用 <script setup> defineProps 方式创建props并给上默认值, 然后.分别在浏览器和微信小程序开发工具里查看页面的显示效果

预期结果:

H5与微信小程序显示一至

实际结果:

H5中没有正确的显示props的默认值
微信小程序中正确的显示了props的默认值

bug描述:

使用 vue3 defineProps 方法为组件创建 props, 并给上默认值. 在微信小程序中调试. 是可以正确的显示出这些默认值的, 但在Chrome或hbuilderx内部浏览器中打开. 无法正确的显示默认值

2022-07-13 08:54 负责人:无 分享
已邀请:
[已删除]

[已删除]

defineProps的变量模板中默认会提升到全局..不需要在ref了...并且最好后面ref时不要跟props里面的重名

  • e***@126.com (作者)

    感谢回复, 使用 ref 是为了做数据的绑定, 如果不使用 props 里面得到的值只是普通的值, 不具备数据绑定的效果.

    另外. 我按你说的. 将ref的变量换成了其它名字, 在web端. 还是不能正确的显示 defineProps中的默认值 .

    这个问题的重点是. 同样的代码 . 在Web端和微信小程序中的显示效果不一至

    2022-07-13 10:35

e***@126.com

e***@126.com (作者)

我个人的猜测:

子控件中的defineProps中的默认值, 可以正常显示在页面Page中.
而做为上层的Page中的defineProps默认值却没有被显示出来. 可能是因为它是顶层的组件, 没有被触发mount(这里的顶层组件, 和mount都是描述意思. 我并不懂里面的具体实现. )所以没有调用 defineProps 这个方法. (描述个意思, 纯猜测)
希望能帮助找到这个bug的解决方法.

要回复问题请先登录注册