【发布时间】:2020-11-20 14:00:06
【问题描述】:
我有两个 Vue 组件,EventTask 和 EventCard。 EventTask 在data 中有一个currentEvent 对象,我将它作为道具传递给EventCard,就像这样
<event-card :current-event="currentEvent" />
在 EventCard 中,我从 currentEvent 属性初始化了一个 event 数据属性,正如 this answer 中所建议的那样
export default {
name: 'EventCard',
props: {
currentEvent: {
type: Object,
required: false
}
},
data: function () {
return {
event: { ...this.currentEvent }
}
}
}
但是,由于某种原因,event 数据属性未正确设置。这是我在 Vue 开发人员工具中看到的内容
请注意,currentEvent 属性是一个带有一堆属性的对象,但event 数据属性是一个空对象。为什么没有从 prop 正确初始化 data 属性?
【问题讨论】:
-
您能否分享一个代表您的场景的简单演示/小提琴,因为它在正常情况下有效。
-
为什么需要在数据中创建另一个属性?您可以在 EventCard 组件中使用相同的 currentEvent (this.currentEvent)。在数据中创建另一个属性的任何具体原因?另一种方法是将currentEvent分配给一个生命周期中的事件(在数据中),您可以使用mounted() {this.event = this.currentEvent }
-
@SowmyadharGourishetty 我需要在数据中创建另一个属性,因为我将在
EventCard组件中修改此对象,但我不希望这些更改传播到EventTask组件跨度>
标签: javascript vue.js