const store = createStore({ state() { return { // Cargo 存储用户信息 cargoUserInfo: {}, // Qzone QQ空间数据 qzoneUserInfo:[] } }, 这里qzoneUserInfo可以存储数组吗
时间: 2024-02-09 07:08:02 浏览: 113
是的,qzoneUserInfo可以存储数组。在这个示例中,store中的state对象中的qzoneUserInfo属性是一个空数组,可以在需要时添加元素。例如,可以使用以下方式向qzoneUserInfo数组添加元素:
```
store.state.qzoneUserInfo.push({name: 'John', age: 25});
```
这将向qzoneUserInfo数组添加一个对象,该对象具有名称为“John”的属性和年龄为25的属性。可以根据需要添加任何其他属性或更改属性。
相关问题
// 创建一个新的 store 实例 const store = createStore({ state() { return { // Cargo 存储用户信息 cargoUserInfo: {}, // Qzone QQ空间数据 qzoneUserInfo: {} } }, mutations: { // Cargo 记录用户信息 SET_CARGOUSERINFO(state, cargoUserInfo) { state.cargoUserInfo = cargoUserInfo }, // Qzone 登录数据 SET_QZONEUSERINFO(state, qzoneUserInfo) { state.qzoneUserInfo = qzoneUserInfo } }, actions: { // Cargo 账号登录 loginCargo({commit}, {username, password}) { return new Promise((resolve, reject) => { loginCargo(username, password).then(res => { setCargoToken(res.data.data) resolve(res.data.code) }).catch(err => reject(err)) }) }, // Cargo 获取用户信息 getCargoUserInfo({commit}) { return new Promise((resolve, reject) => { getCargoUserInfo().then(res => { commit("SET_CARGOUSERINFO", res.data.data) }).catch(err => reject(err)) }) }, // Qzone 登录QQ控件 loginQzone({commit}, {qNum, ptToken}) { return new Promise((resolve, reject) => { LoginQzone(qNum, ptToken).then(res => { let userinfo = { 'qq': ${qNum}, 'cookies': ${res.data.data} } console.log(userinfo) commit('SET_QZONEUSERINFO', userinfo) resolve(res.data) }) }) } } }) SET_QZONEUSERINFO赋值失败
这段代码中 `SET_QZONEUSERINFO` 方法的赋值是有问题的,因为 `${qNum}` 和 `${res.data.data}` 应该被包裹在引号中,例如:
```
let userinfo = {
'qq': `${qNum}`,
'cookies': `${res.data.data}`
}
```
这样就可以成功地创建一个包含 `qq` 和 `cookies` 属性的 `userinfo` 对象了。
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赋值
这段代码有两个问题:
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
```
阅读全文