2017-03-01 14 views
1

同じコンポーネントを連続して呼び出す必要があるシナリオがあります。最初にコンポーネントを呼び出すときにロードしますが、同じコンポーネントを呼び出すと2回目にコンポーネントをリロードしません。 コンポーネントを変更するために状態変更メソッドを使用しています。コンポーネント名が同じ場合、子コンポーネントが再度呼び出されない

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

間に他のコンポーネントを呼び出すと正しく動作します。どうすればこの問題を解決できるのかを教えてください。

+0

なぜあなたはあなたのアプリケーションでそれらを使用してのinteadコンポーネントを「呼び出す」ですか?あなたのコードについてのより多くの情報も参考になります。 – Potray

答えて

1

次のコードを試してください。 $がサポートされていなければ動作します。

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

いいえ、Vueが変更を監視している場合は表示されません。これを回避する一つの方法は、nextTickであなたのコンポーネントをリセットし、その後、nullに自分の状態を設定することです:

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

ここJSFiddleです:https://jsfiddle.net/1spj1hzv/

あなたのコードはapp何であるか、しかし少し奇妙なのですか?あなたは私の答えにあるような内部データプロパティを参照しているようには見えませんが、あなたの質問にはapp.stateが反応していることが示唆されているため、特定のユースケースに対してこの回答を微調整する必要があります。

+0

お返事ありがとうございました –

関連する問題