const store = createStore({ state() { return { cargoUserInfo: {}, qzoneUserInfo: { "qq": '', "cookies": '' } } }, mutations: { SET_CARGOUSERINFO(state, cargoUserInfo) { state.cargoUserInfo = cargoUserInfo }, SET_QZONEUSERINFO(state, qzoneUserInfo) { state.qzoneUserInfo = qzoneUserInfo } }, actions: { loginQzone({commit}, {qNum, ptToken}) { return new Promise((resolve, reject) => { LoginQzone(qNum, ptToken).then(res => { store.state.qzoneUserInfo.qq = qNum store.state.qzoneUserInfo.cookies = res.data.data commit("SET_QZONEUSERINFO",) resolve(res.data) }).catch(err => reject(err)) }) } } }) export default store 上面这段代码有什么错误,应该如何给SET_QZONEUSERINFO赋值
时间: 2024-02-11 18:07:25 浏览: 151
这段代码有两个问题:
1. 在actions中调用LoginQzone函数时,应该使用commit来调用mutations中的SET_QZONEUSERINFO函数来更新state中的qzoneUserInfo,而不是直接修改store.state.qzoneUserInfo的值。
2. 在commit方法中,应该将qzoneUserInfo作为第二个参数传递给SET_QZONEUSERINFO函数,以便将其更新到state中。
下面是修改后的代码:
```
const store = createStore({
state() {
return {
cargoUserInfo: {},
qzoneUserInfo: {
qq: '',
cookies: ''
}
}
},
mutations: {
SET_CARGOUSERINFO(state, cargoUserInfo) {
state.cargoUserInfo = cargoUserInfo
},
SET_QZONEUSERINFO(state, qzoneUserInfo) {
state.qzoneUserInfo = qzoneUserInfo
}
},
actions: {
loginQzone({commit}, {qNum, ptToken}) {
return new Promise((resolve, reject) => {
LoginQzone(qNum, ptToken)
.then(res => {
const qzoneUserInfo = {
qq: qNum,
cookies: res.data.data
}
commit('SET_QZONEUSERINFO', qzoneUserInfo)
resolve(res.data)
})
.catch(err => reject(err))
})
}
}
})
export default store
```
阅读全文