我试图使我的Vue组件可重用,但其中有一部分需要在我在父组件中定义的按钮单击时运行函数.
现在我正在向组件传递两个属性:1)一个对象和2)父函数引用,这需要1)中的对象作为参数.
Child组件如下所示(删除了不必要的代码):
<button v-on:click="parentMethod(placement)">Analyze</button>
Vue.component('reporting-placement', {
props: ['placement', 'method'],
template: '#reporting-placement',
methods: {
parentMethod: function(placement) {
this.method(placement);
}
}
});
parent人利用子元素的方式如下:
<reporting-placement v-bind:placement="placement" v-bind:method="analyzePlacement"></reporting-placement>
methods: {
analyzePlacement: function(placement) {
this.active_placement = placement;
},
}
如您所见,子对象只有一个属性placement
和回调引用.必须将placement
作为参数输入到父函数的引用函数中.
但是,由于父函数定义了参数,子函数不应该关心它需要传递给父函数的内容.相反,我更希望已经在父级中传递了参数.
所以
<reporting-placement v-bind:placement="placement" v-bind:method="analyzePlacement"></reporting-placement>
我宁愿
<reporting-placement v-bind:placement="placement" v-bind:method="analyzePlacement(placement)"></reporting-placement>
(包括子元素的适当变化).
信息:如果我像上面那样写下来,我不会收到错误消息,但当我将参数传递给组件时,整个Vue都会出错.
希望问题是明确的:-)非常感谢!