1***@qq.com
1***@qq.com
  • 发布:2024-01-02 18:37
  • 更新:2024-01-02 18:37
  • 阅读:150

【报Bug】使用 withDefaults 设置默认值后,在 script 中无法得到默认值

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 3.99

浏览器平台: Chrome

浏览器版本: 120.0.6099.129

项目创建方式: HBuilderX

示例代码:
<script setup lang="ts">  
const props = withDefaults(defineProps<{ visible?: boolean }>(), { visible: true })  
console.log("====== visible ======")  
console.log(props.visible) // undefined  
</script>  
<template>  
<!-- visible => true -->  
<view>{{ visible }}</view>  
</template>

操作步骤:

PS:如果此 vue 文件作为一个页面使用时,会出现当前的问题
如果此 vue 文件作为一个组件使用时,无此问题
就是说,如果一个 vue 文件即想做一个独立页面又想在其他地方作为一个组件复用时,会出现此问题

<script setup lang="ts">  
const props = withDefaults(defineProps<{ visible?: boolean }>(), { visible: true })  
console.log("====== visible ======")  
console.log(props.visible) // undefined  
</script>  
<template>  
<!-- visible => true -->  
<view>{{ visible }}</view>  
</template>

预期结果:
<script setup lang="ts">  
const props = withDefaults(defineProps<{ visible?: boolean }>(), { visible: true })  
console.log("====== visible ======")  
console.log(props.visible) // true  
</script>  
<template>  
<!-- visible => true -->  
<view>{{ visible }}</view>  
</template>

实际结果:
<script setup lang="ts">  
const props = withDefaults(defineProps<{ visible?: boolean }>(), { visible: true })  
console.log("====== visible ======")  
console.log(props.visible) // undefined  
</script>  
<template>  
<!-- visible => true -->  
<view>{{ visible }}</view>  
</template>

bug描述:

在 script setup 中 定义一个 props 后,使用 withDefaults 设置默认值时,在 template 中值正常,在 script 中值错误

2024-01-02 18:37 负责人:无 分享
已邀请:

要回复问题请先登录注册