// Qzone 登录数据 SET_QZONEUSERINFO(state, qzoneUserInfo) { state.qzoneUserInfo = qzoneUserInfo } 如何获取值
时间: 2024-02-06 20:02:22 浏览: 22
如果你想获取 state 中的 qzoneUserInfo 值,你可以使用以下代码:
```javascript
const qzoneUserInfo = this.$store.state.qzoneUserInfo;
```
其中 this.$store.state.qzoneUserInfo 表示当前组件的 Vuex store 中的 qzoneUserInfo 值。你可以将其赋值给一个变量,以便在组件中使用。
相关问题
// Qzone 登录数据 SET_QZONEUSERINFO(state, qzoneUserInfo) { state.qzoneUserInfo = qzoneUserInfo } 如何获取值,请给我一个完整的示意
好的,这里是一个完整的示例代码:
1. 在你的组件中,引入 Vuex store 并获取 qzoneUserInfo 值:
```javascript
import { mapState } from 'vuex';
export default {
computed: {
...mapState({
qzoneUserInfo: state => state.qzoneUserInfo,
}),
},
// 其他组件代码...
};
```
2. 在模板中使用获取到的 qzoneUserInfo 值:
```html
<template>
<div>
<div v-if="qzoneUserInfo">
<img :src="qzoneUserInfo.avatar" />
<p>{{ qzoneUserInfo.nickname }}</p>
</div>
<div v-else>
<button @click="login">登录</button>
</div>
</div>
</template>
```
在这个示例中,我们使用了 Vuex 的 mapState 辅助函数来获取 qzoneUserInfo 值,并将其赋值给组件的 computed 属性中的 qzoneUserInfo 属性。在模板中,我们使用了 v-if 和 v-else 来判断用户是否已经登录,并分别展示不同的内容。
当 qzoneUserInfo 存在时,我们展示用户头像和昵称;当 qzoneUserInfo 不存在时,我们展示一个登录按钮。在这个示例中,我们假设用户点击登录按钮后会触发 login 方法,该方法会触发 Vuex store 中的 SET_QZONEUSERINFO mutation,将用户信息保存到 state 中。
// 创建一个新的 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` 对象了。