我正在構建一個簡單的演示工具,在這裏我可以創建演示文稿,命名它們並使用Vue js和Vuex添加/刪除幻燈片來處理應用程序狀態。一切都很順利,但現在我試圖實現一個功能,檢測演示文稿中的更改(標題已更改或幻燈片添加/刪除),並且還找不到適合它的正確解決方案。爲了簡單起見,我只舉例說明標題更改的例子。現在在我的店裏Vuex我:如何在Vuex存儲狀態更改時更新Vue組件屬性?
const state = {
presentations: handover.presentations, //array of objects that comes from the DB
currentPresentation: handover.presentations[0]
}
在發言分量,我有:
export default {
template: '#presentation',
props: ['presentation'],
data:() => {
return {
shadowPresentation: ''
}
},
computed: {
isSelected() {
if (this.getSelectedPresentation !== null) {
return this.presentation === this.getSelectedPresentation
}
return false
},
hasChanged() {
if (this.shadowPresentation.title !== this.presentation.title) {
return true
}
return false
},
...mapGetters(['getSelectedPresentation'])
},
methods: mapActions({
selectPresentation: 'selectPresentation'
}),
created() {
const self = this
self.shadowPresentation = {
title: self.presentation.title,
slides: []
}
self.presentation.slides.forEach(item => {
self.shadowPresentation.slides.push(item)
})
}
}
什麼我目前做的是創造我的介紹的卷影副本組件時創建,然後通過計算屬性的方式比較我感興趣的屬性(在本例中爲標題),如果有任何不同,則返回true。這適用於檢測更改,但我想要做的是能夠在演示文稿保存時更新影子演示文稿,到目前爲止我沒有做到。由於在另一個組件中觸發了savePresentation動作,並且我不知道如何在演示文稿組件中選擇「保存」事件,所以無法更新我的影子演示文稿。有關如何實現此功能的任何想法?任何幫助將非常感激!提前致謝!
智能解決方案,不適合我個人使用,但智能仍然 - 很好的工作! :) –
非常感謝! ;) –
但爲了記錄,我在兩位隊友的幫助下來到了這裏。學分並不全是我的。 –