我正在撰写一个通过prop
接收数据的组件,修改该数据,然后$emit
将其更改回父级(在更改后,它也位于watched
)。
prop
可以被动吗?或者,如何为反应属性分配道具?
我试图通过以下方式避免这个问题:
props: ["receiveddata"]
data
(例如hello: ''
)mounted()
确保this.hello = this.receiveddata
我希望此时this.hello
能够传送receiveddata
道具带来的内容,并从那时开始this.hello
上的工作(即:修改它,观看它和相关时$emit
但是,在查看DevTools中的值时,我看到了
this.hello
未定义this.receiveddata
正确保存传递给组件的数据我的结论是,当在mounted()
中时,道具值尚未知晓(因此undefined
的{{1}}),此this.receiveddata
被分配给this.hello ,然后后来undefined
被填充(但对我来说太迟了)。
换句话说,我将我的this.receiveddata
插入了错误的位置,但我真的不知道它可以去哪里(我也尝试将this.hello = this.receiveddata
更改为mounted()
)< / p>
答案 0 :(得分:0)
我可能不会100%理解,但我认为这就是你所追求的目标。
在这种情况下,我通常使用带有getter和setter的计算属性。
props: {
someProp: String,
},
computed: {
somePropLocal: {
get () {
return this.someProp
},
set (value) {
this.$emit('input', value)
},
},
}
通过这种方式,您可以自由地执行此操作,并将发出正确的值。
this.somePropLocal = 'Whatever'
此外,如果父母也直接更改somePropLocal
,则会更新securityDefinitions:
client_secret:
type: apiKey
description: ''
in: header
name: X-Client-Secret
client_id:
type: apiKey
description: ''
in: header
name: X-Client-Id
security:
- client_secret: []
client_id: []
。