属性的反应性在控件之间不起作用

时间:2019-06-06 19:14:09

标签: javascript vue.js

我一直在尝试使我的媒体资源具有反应性,但是由于某种原因,它无法正常工作。我的属性用于两个Vue组件之间。我可以正常访问组件,但这只是这个属性

在子组件中,我有一个下拉列表,并从中选择一个用户。我想将其传递给父组件

该下拉列表是一个自定义控件,因此无法粘贴其代码。但是,一旦选择了用户,就会触发一个事件,并且我可以在调试器中看到选中的用户成功触发了偶数。现在的问题是将值传递给父级。

子组件中的事件:

computed: {
  ...mapGetters(["selectedParentControl"]),
},
methods {
  onUserSelected(items){
    Vue.set( this.selectedParentControl, 'userObject', items )
  }
}

父模板:

<div v-if="userObject"> 
   <p class="mb-0">First User: {{this.userObject}}</p>
</div>

但是父组件中的变量不会更新。

1 个答案:

答案 0 :(得分:0)

因此,如果我答对了,您想为自定义组件设置双向数据绑定。因此,您可以使用v-model

在子组件中定义prop并发出值更改。

props: ['userObject'],
methods {
  onUserSelected(items){
    this.$emit('userObject', items);
  }
}

在父组件中,将v-model指令添加到子组件元素中:

<div v-if="userObject"> 
   <child v-model="userObject"></child>
   <p class="mb-0">First User: {{this.userObject}}</p>
</div>