如果组件名称相同,则不会再次调用子组件

时间:2017-03-01 11:38:04

标签: vue.js

我有一个场景,我必须连续调用相同的组件。我第一次调用它加载的组件,但第二次当我调用相同的组件时,它不会重新加载组件。 我正在使用更改状态方法来更改组件。

    ChangeState: function (newState) {
      app.state = newState;
 },

如果我在其中调用其他组件,那么它可以正常工作。请建议我如何解决这个问题。

2 个答案:

答案 0 :(得分:1)

不,如果Vue正在观察变化,它就不会。解决此问题的一种方法是将您的状态设置为null,然后在nextTick中重置您的组件:

ChangeState(newState) {
  this.state = null;
  this.$nextTick(() => {
    this.state = newState;
  });
}

这是JSFiddle:https://jsfiddle.net/1spj1hzv/

你的代码有点奇怪,app是什么?您似乎没有引用任何内部数据属性(就像我在答案中所述),但您的问题表明app.state是被动的,因此您可能需要针对您的特定用例调整此答案。 / p>

答案 1 :(得分:1)

尝试以下代码。如果不支持$,它将起作用。

Vue.nextTick(function() {
                        app.state = newState;
                    })