[英]nuxt vuex: do not mutate vuex store state outside mutation handlers
[英]Getting this error in nuxt: [vuex] do not mutate vuex store state outside mutation handlers
我正在使用nuxt.js,我想將當前歌曲時間傳遞給vuex。
但是傳遞數據只能工作一次。
這是我的數據:
currentSongTime: {
second: 0,
minute: 0,
total: 0
}
安裝:
this.WaveSurfer.on('seek', (position) => {
this.currentSongTime.second = parseInt(position * this.WaveSurfer.getDuration() % 60);
this.currentSongTime.minute = parseInt((this.WaveSurfer.getCurrentTime() / 60) % 60);
this.currentSongTime.total = parseInt(position * this.WaveSurfer.getDuration());
this.$store.commit('setCurrentSongTime', this.currentSongTime);
});
index.js(vuex):
export const state = () => ({
currentAudioTime: {}
});
export const mutations = {
setCurrentSongTime(state, val) {
state.currentAudioTime = val;
}
};
它只工作一次,然后,我收到此錯誤消息:
[vuex] do not mutate vuex store state outside mutation handlers.
我不知道該怎么辦?
您直接將組件數據設置為Vuex
狀態,這會引起問題,因為在修改組件數據時,您還直接在突變處理程序之外對狀態進行了突變。 一種快速修復是在將其分配為vuex
狀態之前克隆該對象:
this.$store.commit('setCurrentSongTime', JSON.parse(JSON.stringify(this.currentSongTime)));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.