vue3的class写法中,使用defineProps接收父组件的值为null
时间: 2024-10-27 12:02:39 浏览: 33
Vue.js 中制作自定义选择组件的代码附演示demo
在 Vue 3 的 class 组件中,如果你使用 `defineProps` 来接收父组件传递的值,可能会遇到传入 `null` 或 undefined 的情况。`defineProps` 是用于静态地定义组件的 props,它期望的是明确的数据类型。如果父组件未提供这个 prop 或者传递了一个 null 值,你需要在组件内部添加一些处理逻辑来应对这种情况。
例如:
```javascript
import { defineComponent, PropType } from 'vue';
export default defineComponent({
props: {
userInfo: {
type: [PropType.Object, null], // 明确指定它可以接受 null 值
default: null, // 默认值设置为 null,表示如果没有提供该值,则默认为 null
required: false, // 可选,如果设为 true,那么这个 prop 就是必填的
},
},
setup(props) {
let user: any; // 初始化一个可变变量存储用户信息
if (props.userInfo !== undefined && props.userInfo !== null) { // 检查是否为空
user = { ...props.userInfo }; // 如果不为空,复制到局部变量
}
return { user };
},
});
```
在这个例子中,如果 `userInfo` 从父组件传递过来是 null 或 undefined,`user` 变量会被初始化为 null。
阅读全文