父子组件传值,子组件接收不到值
问题描述
父组件给子组件传值,传数字可以正常收到,传对象{ } 就是收不到~
现在问题已经解决,但是我不太明白其中的原因,有大神知道原因后,帮忙评论答疑解惑。多谢!
父组件:
<template>
<recordPage :btnList="btnList"></recordPage>
</template>
<script>
import recordPage from './recordPage.vue'
export default {
name: 'index',
data () {
return { btnList: null }
},
components: { recordPage },
created () {
query().then(({ data }) => {
this.btnList = data // 从接口取到的值,想要传给子组件
})
}
}
</script>
子组件:
export default { name: 'recordPage', props: { btnList: { type: Object, default: {} } }, created() { console.log('created btnList=====' + this.btnList) }, mounted() { console.log('mounted btnList=====' + this.btnList) }
结果呢,两次打印值都为空,空 空!!

我以为是传的不对,但是当父组件给子组件传递的参数是数字时,竟然有输出了。这就很诡异了


但是我并不想要数字,我想要传的是个对象。没办法,最后用了最不喜欢的一招,watch。子组件页面用watch监听btnList的变化,有值的话,再去判断,再去渲染页面。
watch: { btnList(val) { this.showBtn(val) } }
嗯,最后解决了,值也拿到了。但是为什么传数字可以,传对象就不行?难道是console时 数据没有加载完?不确定原因,所以就来记录一下,有知道原理的大神,欢迎指导~~
作者:Lemoncool
更多:没有办法维护原创版权,欢迎关注我的公粽号:前端便利贴,文章更早、更全,免费获取完整代码
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利.
标签:
vue
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律