Javascript 当我将一组对象提交到Vuex存储时,这些对象会丢失其一个属性
我有一个Vuex操作,它向后端发出GET请求,并获取用户的所有服务器作为响应:Javascript 当我将一组对象提交到Vuex存储时,这些对象会丢失其一个属性,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,我有一个Vuex操作,它向后端发出GET请求,并获取用户的所有服务器作为响应: async getUserServers({commit, state, dispatch}, userId){ try { let response = await axios.get("/servers/" + userId) let servers = response.data.servers
async getUserServers({commit, state, dispatch}, userId){
try {
let response = await axios.get("/servers/" + userId)
let servers = response.data.servers
console.log(servers)
} catch (error) {
console.log(error)
}
}
使用原样的代码,我可以console.log(servers)
并将属性导航到servers[0].rooms[0].messages[0].user
并访问包含以下内容的用户属性:
{
"id": 1,
"username": "Test",
"email": "test@abv.bg",
"image": "test.png",
"createdAt": "2020-08-12T21:09:58.000Z",
"updatedAt": "2020-08-12T21:09:58.000Z"
}
当我尝试将服务器提交到Vuex应用商店时,问题就出现了。当我这样做时:
async getUserServers({commit, state, dispatch}, userId){
try {
let response = await axios.get("/servers/" + userId)
let servers = response.data.servers
console.log(servers)
commit('setServers', servers)
} catch (error) {
console.log(error)
}
}
执行此变异:
setServers(state, servers){
state.servers = servers
}
现在,当我通过Vue.js开发者工具检查我的Vuex状态时,我可以看到
servers[0].rooms[0].messages[0]
的user
属性不存在,我不知道它为什么会消失。对象的每个属性都很好,除了这个属性。@Bobumaru ismessages
字段用空数组/字符串初始化,或者未定义?@KrzysztofKaczyński messages已定义,它是一个消息对象数组。问题是messages对象缺少user属性,该属性包含发布消息者的user对象。您可以在Codesandbox中共享复制品吗?@tony19是正确的,如果您需要帮助提供更多信息please@tony19然而,我使用Codesandbox创建了e复制,在那里,我没有遇到更让我困惑的问题。所以发送复制品是没有意义的,因为它没有显示我遇到的问题,但同时问题仍然存在于我的实际项目中。我猜我的项目中有什么事情发生了,但我甚至不知道从哪里开始。