我有一個場景,我必須連續調用相同的組件。第一次當我調用它加載的組件時,但第二次調用同一個組件時,它不會重新加載組件。 我正在使用更改狀態方法更改組件。如果組件名稱相同,子組件不會再次調用
ChangeState: function (newState) {
app.state = newState;
},
如果我在其中調用其他組件然後它能正常工作。請建議我如何解決這個問題。
我有一個場景,我必須連續調用相同的組件。第一次當我調用它加載的組件時,但第二次調用同一個組件時,它不會重新加載組件。 我正在使用更改狀態方法更改組件。如果組件名稱相同,子組件不會再次調用
ChangeState: function (newState) {
app.state = newState;
},
如果我在其中調用其他組件然後它能正常工作。請建議我如何解決這個問題。
請嘗試下面的代碼。如果不支持$,它將起作用。
Vue.nextTick(function() {
app.state = newState;
})
不,不會,如果Vue正在觀察變化。解決此問題的辦法是你的狀態設置爲null
,然後重置您的組件在nextTick
:
ChangeState(newState) {
this.state = null;
this.$nextTick(() => {
this.state = newState;
});
}
這裏的的jsfiddle:https://jsfiddle.net/1spj1hzv/
你的代碼是有點怪,雖然,什麼是app
?你似乎沒有提到任何內部數據屬性(就像我在我的答案中一樣),但是你的問題表明app.state
是被動的,所以你可能需要爲你的特定用例調整這個答案。
謝謝你的回答是有幫助的 –
你爲什麼要「調用」在你的應用程序中使用它們的組件?有關您的代碼的更多信息將會有所幫助。 – Potray