updateLoadMenus({ commit }) { return new Promise((resolve, reject) => { commit('SET_LOAD_MENUS', false) }) }
时间: 2024-05-22 16:13:43 浏览: 105
This code defines an action called "updateLoadMenus" which takes in a Vuex store's "commit" method as a parameter. The action returns a new Promise that sets the "LOAD_MENUS" state to false when the Promise is resolved.
It's likely that the "LOAD_MENUS" state is being used to track whether menus are currently being loaded or not. This action can be called in response to a user request to refresh the menus, which would set "LOAD_MENUS" to false and trigger the component to re-fetch the menus.
相关问题
// Cargo 获取用户信息 getCargoUserInfo({commit}) { return new Promise((resolve, reject) => { getCargoUserInfo().then(res => { commit("SET_CARGOUSERINFO", res.data.data) }).catch(err => reject(err)) }) } 我在其他页面无法获取commit值
这是因为 `commit` 是 Vuex 中的一个方法,它只能在 Vuex store 的上下文中被调用。如果你想在其他页面中使用 `commit`,你需要在这些页面中引入 Vuex store 并通过 `store.commit()` 调用它。
可以像这样在其他页面中引入 Vuex store:
```javascript
import store from '@/store'
// 调用 commit 方法
store.commit('SET_CARGOUSERINFO', userInfo)
```
这里假设你的 `SET_CARGOUSERINFO` mutation 的定义是:
```javascript
mutation: {
SET_CARGOUSERINFO(state, userInfo) {
state.userInfo = userInfo
}
}
```
注意,如果你直接调用 `commit` 方法,而不是通过 Vuex store,那么你就无法改变 Vuex store 中的状态。因此,在其他页面中使用 `commit` 时,确保你已经正确配置了 Vuex store。
// 创建一个新的 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` 对象了。
阅读全文