<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>
- 发布:2024-01-02 18:37
- 更新:2024-06-26 15:30
- 阅读:338
【报Bug】使用 withDefaults 设置默认值后,在 script 中无法得到默认值
产品分类: uniapp/H5
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 12.7.1 (21G920)
HBuilderX类型: 正式
HBuilderX版本号: 3.99
浏览器平台: Chrome
浏览器版本: 120.0.6099.129
项目创建方式: HBuilderX
示例代码:
操作步骤:
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>
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) // 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>
<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 中值错误
1 个回复
1***@qq.com
请问在nvue页面能使用withDefaults吗