Vue.js VUEJS+;VUEX每次调度操作时状态重置
每次我在vuex中分派操作时,它都会删除我的旧用户状态,并将分派操作添加到播放列表中。我不知道是什么问题,所以分享屏幕截图你们可能会在图片中明白我想说什么 问题是,当应用程序启动时,它可以使用默认值正常工作,但当我使用某个按钮或事件添加dispatch时,它会从vuex中删除用户状态对象,但会保留包含新项目的播放列表。我知道何时发送播放列表刷新vuex对象,但如何保持用户对象不变 这是我添加的动作,效果很好,但每次添加某个动作时,我都必须这样做,或者如果其他动作,我必须应用相同的动作 你知道我不必每次都发送用户调度吗Vue.js VUEJS+;VUEX每次调度操作时状态重置,vue.js,vuex,Vue.js,Vuex,每次我在vuex中分派操作时,它都会删除我的旧用户状态,并将分派操作添加到播放列表中。我不知道是什么问题,所以分享屏幕截图你们可能会在图片中明白我想说什么 问题是,当应用程序启动时,它可以使用默认值正常工作,但当我使用某个按钮或事件添加dispatch时,它会从vuex中删除用户状态对象,但会保留包含新项目的播放列表。我知道何时发送播放列表刷新vuex对象,但如何保持用户对象不变 这是我添加的动作,效果很好,但每次添加某个动作时,我都必须这样做,或者如果其他动作,我必须应用相同的动作 你知道我不
addSongToList() {
playlist.dispatch('addSong', { title: "Beside Me",
mp3: "http://dl.jatt.link/lq.jatt.link/cdn8/1a40cff114c5ee39b75dd3813c3f29dd/cdlzv/Ni%20Mainu-(Mr-Jatt.com).mp3",
});
store.dispatch('updateUser', this.getUser );
}
谢谢
这是我的playlist.js存储文件:
import Vuex from 'vuex'
let state = {
playerList: []
};
let getters = {
getPlaylist: state => {
return state.playerList
}
};
let actions = {
addSong: ({commit}, song) => {
commit('ADD_SONG_TO_PLAYLIST', song)
}
};
let mutations = {
ADD_SONG_TO_PLAYLIST(state, song) {
state.playerList.push(song)
}
};
let playlist = new Vuex.Store({
state,
getters,
mutations,
actions,
});
global.playlist = playlist;
export default playlist
这是user.js
import Vuex from 'vuex'
import playlist from './playlist'
let state = {
user: {}
};
let getters = {
getUser: state => {
return state.user
}
};
let actions = {
updateUser: ({commit}, user) => {
commit('ADD_USER', user)
},
deleteUser: ({commit}) => {
commit('DELETE_USER')
}
};
let mutations = {
ADD_USER(state, user) {
state.user = user
},
DELETE_USER(state) {
state.user = null
}
};
export default new Vuex.Store({
state,
getters,
actions,
modules: {
playlist
},
mutations,
})
在官方文档中,模块被定义为简单对象,而不是整个存储。尝试替换
let playlist=new Vuex.Store({…})只使用让playlist={…}
进行编码>并报告是否解决了问题。在官方文档中,模块定义为简单对象,而不是整个存储。尝试替换let playlist=new Vuex.Store({…})只需使用让playlist={…}
并报告问题是否解决。