Vue.component("step", {
props: ["Model", "step"],
data: function () {
return {
};
},
methods: {
activateStep: function (step) {
var vm = this;
Vue.set(vm.Model, "ActiveStep", step);
}
}
});
<step inline-template :model="Model" step=SomeStepNumber>
</step>
当我尝试更新vm.Model.ActiveStep时,它显示错误消息-“ 您可能在组件渲染函数中有一个无限的更新循环”
答案 0 :(得分:0)
您不应该在组件中设置属性的值。属性由父级设置并传递到组件中。错误是
Vue.set(vm.Model, "ActiveStep", step);
如果组件需要更新其父级,惯用的方法是向父级发出事件
this.$emit("step", step)
,并让该父组件适当地更新属性。
如果需要双向绑定,则可以使用v-model
或.sync
modifier