解决vue中props对象中设置多个默认值的问题

 更新时间:2024年04月09日 09:33:30   作者:songywaa  
props中设置了默认值,但是获取时(获取父页面没有传的属性) 打印出来是undefined,所以本文给大家介绍了解决vue中props对象中设置多个默认值的问题,需要的朋友可以参考下

1、遇到问题:

props中设置了默认值,但是获取时(获取父页面没有传的属性) 打印出来是undefined

子组件

props: { 
    paramsObj: {
    type:Object,
        default:() => {
            return {
                tabList: [],
                tableFixedHeader: [],
                showHandleCol:false,
                handleType:[], 
                isTagData:false,
         	}
     	}
    }
},

父组件

<RealViewModel :paramsObj="params"></RealViewModel>
params: {
	  type: "water",
	  tabList: [
	      {
	          name: "浓度数据",
	          id: "ND"
	      },
	      {
	          name: "水域水质分析",
	          id: "SY"
	      }
	  ],
	  tableFixedHeader: [
	      {name:'时间',code:'DT',isFixed:true},
	  ]
}

此时在子组件中,只能获取到父组件传过来的值,而没有传的属性没有了(下图)

在这里插入图片描述

2、原因:

props 默认值的作用:

它只在没有传参时才会被读取,并不会为你的参数对象补齐属性,

3、解决方法:

使用计算属性computed,解决 父页面不传参数情况

子组件

props: { 
	paramsObj: {
         type:Object,
         default:() => {
             return {}
         }
     }
 },
 computed:{
     params(){ 
         return Object.assign({
             tabList: [],
             tableFixedHeader: [],
             showHandleCol:false,
             handleType:[], 
             isTagData:false,
         },this.paramsObj);
     }
 },

页面中直接 params.isTagData 就能直接用了

打印一下看结果:自动给补齐了父页面没有传的属性(下图)

在这里插入图片描述

到此这篇关于解决vue中props对象中设置多个默认值的问题的文章就介绍到这了,更多相关vue props多个默认值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue自定义指令详解

    Vue自定义指令详解

    这篇文章主要为大家详细介绍了Vue自定义指令的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • vue弹窗嵌入其它vue页面的操作代码

    vue弹窗嵌入其它vue页面的操作代码

    这篇文章主要介绍了vue弹窗如何嵌入其它vue页面,实现方式是将其他页面作为组件传入,在父页面将该组件引入到弹框内,实例代码简单易懂需要的朋友可以参考下
    2022-11-11
  • 为vue中的data赋值computed计算属性后,出现undefined原因及解决

    为vue中的data赋值computed计算属性后,出现undefined原因及解决

    这篇文章主要介绍了为vue中的data赋值computed计算属性后,出现undefined原因及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Vue3中使用监听器的具体实践

    Vue3中使用监听器的具体实践

    监听器是Vue3中非常好用的一个特性,用于监听某个响应式变量的变化,本文就来介绍一下Vue3中使用监听器的具体实践,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • table表格中使用el-popover 无效问题解决方法

    table表格中使用el-popover 无效问题解决方法

    这篇文章主要介绍了table表格中使用el-popover 无效问题解决方法,实例只针对单个的按钮管用在表格里每一列都有el-popover相当于是v-for遍历了 所以我们在触发按钮的时候并不是单个的触发某一个,需要的朋友可以参考下
    2024-01-01
  • 使用vue3+vite导入图片路径错乱问题排查及解决

    使用vue3+vite导入图片路径错乱问题排查及解决

    使用vue3+vite开发的时候,导入svg图片时,同一个文件夹下的文件,其中一个路径正常解析,另一个不行,更改文件名之后,该图片文件就可以正常解析了,本文给大家介绍了使用vue3+vite导入图片路径错乱问题排查及解决,需要的朋友可以参考下
    2024-03-03
  • vue动态绑定class选中当前列表变色的方法示例

    vue动态绑定class选中当前列表变色的方法示例

    这篇文章主要介绍了vue动态绑定class选中当前列表变色的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • vue如何实现未登录不能访问某些页面

    vue如何实现未登录不能访问某些页面

    这篇文章主要介绍了vue如何实现未登录不能访问某些页面问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • vue 图标选择器的实例代码

    vue 图标选择器的实例代码

    本文通过实例代码给大家介绍了vue 图标选择器的相关知识,图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-11-11
  • VUE引入使用G2图表的实现

    VUE引入使用G2图表的实现

    本文主要介绍了VUE引入使用G2图表的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08

最新评论