写vue项目时从store拿值说state.user is undefined定义的state.user不存在如何解决,store代码如下import { createStore } from 'vuex' export default createStore({ state: { name: "store1111", user: {} }, getters: { getName(state) { console.log(state) return '1111' }, getUname(state) { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore return state.user.username }, getSex(state){ // eslint-disable-next-line @typescript-eslint/ban-ts-comment //@ts-ignore return state.user.sex }, getRid(state) { // @ts-ignore return state.user.rid } }, mutations: { setName(state, data) { state.name = data }, login(state, data) { sessionStorage.setItem('user', JSON.stringify(data)) state.user = data } }, actions: { }, modules: { } })
时间: 2024-02-14 14:15:15 浏览: 111
详解vuex数据传输的两种方式及this.$store undefined的解决办法
这种情况可能是因为你在调用 `state.user` 时,`state.user` 还没有被赋值,所以它是 `undefined`。要解决这个问题,你可以在调用 `state.user` 之前先进行一次判断,检查 `state.user` 是否存在。你可以使用 `if` 语句或者三目运算符来实现。例如:
```
getUname(state) {
if (state.user && state.user.username) {
return state.user.username
} else {
return ''
}
},
```
或者
```
getUname: state => state.user && state.user.username ? state.user.username : ''
```
这样就可以避免出现 `state.user` 不存在的问题了。
阅读全文