javascript - Vue props update - 组件渲染函数中可能有无限更新循环

标签 javascript vuejs2 vue-component

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 时,它给出错误消息 - “您在组件渲染函数中可能有无限更新循环

最佳答案

您不应设置组件内的属性值。属性由父级设置并传递到组件中。错误是

Vue.set(vm.Model, "ActiveStep", step);

如果组件需要更新其父组件,惯用的方法是向父组件发出事件

this.$emit("step", step)

并让父组件根据需要更新属性。

如果需要双向绑定(bind),可以使用 v-model.sync modifier

关于javascript - Vue props update - 组件渲染函数中可能有无限更新循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52222031/

相关文章:

javascript - 如何以 Angular 2 - 4 递增变量

javascript - AngularJS 轮询 $http 和 $timeout 不更新 View

typescript - 如何在 typescript 中调用 VueJS 方法?

javascript - Vue - 通过 vue 组件传递 prop 数组导致未定义错误

javascript - 如何转义字符串中的多个层次引号(HTML)

javascript - 居中对齐 Bootstrap 选项卡导航

javascript - 数组更改时 VueJS dom 不刷新

javascript - 未捕获的类型错误 : callback is not a function while implementing pusher with laravel

javascript - 继续在历史记录中前后添加行

twitter-bootstrap - 如何在卡组 Bootstrap vue 上设置行中的列?