【问题标题】:Update Vue Prop inside component [duplicate]更新组件内的 Vue Prop [重复]
【发布时间】:2018-07-25 10:16:02
【问题描述】:

我有一个 Client 组件,其中包含一个 ClientInfoClientForm 组件。客户端在其数据中有一个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]
    }
  })
})

这似乎……有点不理想。

有没有更好的方法来处理从ClientForm 更新client 对象以便ClientInfo 组件获取新信息?

【问题讨论】:

  • 谢谢大家。是的,这意味着这绝对是其他问题的重复,我只是不知道这 $emit 是一件事:)

标签: vue.js vuejs2 vue-component


【解决方案1】:

您可以使用新数据发出自定义事件:

axios.put(url, body).then(res => {
  this.$emit('client', res.data)
})

...然后在您的 Client 父组件中对该事件做出反应以更新其状态:

<ClientForm @client='(data) => client = data' />

我希望这会有所帮助。

【讨论】:

猜你喜欢
  • 2018-05-21
  • 2018-10-14
  • 2019-10-01
  • 2021-02-08
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2021-02-14
相关资源
最近更新 更多