我有一个Client
组件,其中包含ClientInfo
和ClientForm
组件。客户端的数据中包含client
,并将其作为支柱传递给表单和信息。在ClientForm
组件内部,我有一个处理后端的方法。现在,当我尝试这样做时:
axios.put(url, body).then(res => {
this.client = res.data
})
我收到有关直接改变道具以及我不应该如何做的错误消息。现在我这样做:
axios.put(url, body).then(res => {
Object.keys(res.data).forEach((i) => {
if(this.client[i] != res.data[i]){
this.client[i] = res.data[i]
}
})
})
这似乎......很好的次优。
是否有更好的方法来处理从client
更新ClientForm
对象,以便ClientInfo
组件获取新信息?
答案 0 :(得分:2)
您可以使用新数据发出自定义事件:
axios.put(url, body).then(res => {
this.$emit('client', res.data)
})
...然后在客户端父组件中对该事件做出反应以更新其状态:
<ClientForm @client='(data) => client = data' />
我希望这会有所帮助。