vue-admin-template中,怎么设置store.state.user.role的值?
时间: 2023-01-17 13:20:55 浏览: 191
在 Vuex 中,通常使用 mutation 来改变 store 中的状态。在 vue-admin-template 中,您可以定义一个 mutation 来改变 store.state.user.role 的值,例如:
```
// store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
user: {
role: ''
}
},
mutations: {
SET_ROLE (state, role) {
state.user.role = role
}
}
})
```
然后,在组件中,您可以使用 `$store.commit` 方法来触发该 mutation,并传入新的 role 值:
```
// someComponent.vue
import { mapMutations } from 'vuex'
export default {
methods: {
...mapMutations(['SET_ROLE']),
updateRole () {
this.SET_ROLE('admin')
}
}
}
```
您还可以使用 `mapMutations` 辅助函数将组件中的 methods 与 store 中的 mutations 建立映射,这样就可以在组件中直接使用 `this.SET_ROLE` 来触发 mutation。
注意:mutation 中的方法应该是同步的,因为它们是用来改变 store 中的状态的。如果您需要执行异步操作,可以使用 action。