想要在其他页面获取该信息应该如何做 commit("SET_CARGOUSERINFO", res.data.data)
时间: 2023-09-15 12:19:37 浏览: 33
如果你是在 Vue.js 中的组件中使用 Vuex 状态管理库,并且想要在其他组件中获取该信息,可以采用以下步骤:
1. 在你的 Vuex store 中定义一个 mutation,并命名为 SET_CARGOUSERINFO,代码类似于下面:
```
mutations: {
SET_CARGOUSERINFO(state, data) {
state.cargoUserInfo = data
},
}
```
2. 在你需要获取该信息的组件中,使用以下代码将该变量从 Vuex store 中获取,代码类似于下面:
```
import { mapState } from 'vuex'
export default {
computed: {
...mapState({
cargoUserInfo: state => state.cargoUserInfo,
}),
},
}
```
3. 然后你就可以在该组件中使用 cargoUserInfo 变量来获取该信息了。
希望这些步骤可以帮到你!
相关问题
commit("SET_CARGOUSERINFO", res.data.data)
这段代码的作用是将从服务器返回的用户信息存储到本地的CargoUserInfo中。具体来说,res.data.data是一个包含用户信息的对象,SET_CARGOUSERINFO是一个常量,它表示要执行的操作类型,commit是Vuex中的一个函数,用来触发指定的mutation来改变state中的数据。因此,这段代码的意思是执行名为SET_CARGOUSERINFO的mutation,并将从服务器返回的用户信息作为参数传递给它,从而更新本地的CargoUserInfo数据。
// 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。