当前位置: 首页 > news >正文

vue 里 props 类型为 Object 时设置 default: () => {} 返回的是 undefined 而不是 {}?

问题

今天遇到个小坑,就是 vue 里使用 props 传参类型为 Object 的时候设置 default: () => {} 报错,具体代码如下

<template><div class="pre-archive-info"><template v-if="infoData.kaimo !== null">{{ infoData.kaimo }}</template></div>
</template><script>
export default {name: "PreArchiveInfo",props: {infoData: {type: Object,default: () => {}}}
};
</script>

在这里插入图片描述
组件里添加下面代码:

infoData:{{ infoData }} type:{{ typeof infoData }}

发现 infoData 是 undefined

在这里插入图片描述

解决

之前我的写法如下,这种是可以的。

<script>
export default {name: "PreArchiveInfo",props: {infoData: {type: Object,default: () => {return {};}}}
};
</script>

下面我们可以尝试问问 chatgpt 看看怎么说:

在这里插入图片描述

我试了一下 default: () => ({}) 这种写法是可以的

<script>
export default {name: "PreArchiveInfo",props: {infoData: {type: Object,default: () => ({})}}
};
</script>

default: () => ({})default: () => {} 有什么区别?

default: () => {} 这样写会被解析器认为是一个代码块,而不是一个对象字面量。因此,如果我们想返回一个空对象,应该在空对象字面量周围加上括号,使其变成一个对象字面量表达式:default: () => ({})

在这里插入图片描述

http://www.lryc.cn/news/284655.html

相关文章:

  • 04 SpringMVC响应数据之页面跳转控制+返回JSON数据+返回静态资源
  • Python圣诞主题绘图:用turtle库打造冬日奇妙画面【第31篇—python:圣诞节】
  • [开发语言][c++]:Static关键字和全局变量
  • 计算机组成原理 第一弹
  • Hadoop基础知识
  • Java进阶之旅第五天
  • 拓展边界:前端世界的跨域挑战
  • 旅游项目day03
  • 单片机学习记录(一)
  • MacBookPro怎么数据恢复? mac电脑数据恢复?
  • Python多线程—threading模块
  • mysql limit
  • 解决国内Linux服务器无法使用Github的方法
  • 动态规划基础(二)最长公共子序列 LCS
  • React配置src根目录@
  • SQL Povit函数使用及实例
  • Lite AD的安装
  • 限流算法之流量控制的平滑之道:滑动时间窗算法
  • C语言数据结构——顺序表
  • 网络安全:守护数字世界的盾牌
  • vue3hooks的使用
  • elementUI+el-upload 上传、下载、删除文件以及文件展示列表自定义为表格展示
  • 供应链安全项目in-toto开源框架详解
  • 自己是如何使用单元测试
  • 第二百七十八回
  • Java 内存模型深度解析
  • python爬取图片(thumbURL和html文件标签分别爬取)
  • MySQL、Oracle 常用SQL:建表、建视图、数据增删改查、常用condition
  • Docker(八)高级网络配置
  • VUE--- ref refs