vue组件的props问题

发布于 2022-09-13 00:59:30 字数 257 浏览 7 评论 0

请问下我在子组件定义一个

// 带有默认值的对象
propE: {
  type: Object,
  // 对象或数组默认值必须从一个工厂函数获取
  default: function () {
    return { message: 'hello' }
  }
},

如果我在父组件调用时传的对象:propE="{ test:'1213' }"。。它是没有message这个属性的,,如何把父组件传入参数和子组件定义的propE合并

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

薄情伤 2022-09-20 00:59:30

用计算属性

computed:{
mixProp(){
 let obj={mmessage:'abc'};
 let t=Object.assign({},obj,this.propE)
return t
}
}
夜清冷一曲。 2022-09-20 00:59:30
default:any
为该 prop 指定一个默认值。如果该 prop 没有被传入,则换做用这个值。对象或数组的默认值必须从一个工厂函数返回。

由文档解释我们可以很清楚地知道 default 的内容只在该prop没传入时生效, 不能用来合并 对象属性,像楼上所说,你的需求可以通过计算属性来实现。

vue2 API文档之 props

两种常见的试图变更一个 prop 的情形

云雾 2022-09-20 00:59:30
props: ['propE'],
data: function () {
  return {
    propELocal: {message: 'hello', test: this.propE.test}
  }
}

或者

props: ['propE'],
computed: {
  propELocal: function () {
    return {message: 'hello', test: this.propE.test}
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文