Vue.js 및 Vuex this.$store 반환을 새 Vue({store})에 추가한 후 정의되지 않음
여기서 사용 가능한 해결책을 살펴보았지만, 제 상황에 맞는 해결책은 하나도 없는 것 같습니다.
- Vue.js 및 vuex: 이것.$store가 정의되지 않았습니다.
- Vuex가 저장합니다.Vue.js 구성 요소에 $store가 정의되지 않았습니다.
- https://pinoria.com/how-to-fix-this-store-is-undefined-with-vue-js-and-vuex/
저장 개체를 main.js로 가져왔습니다.기록을 통해 확인했습니다.
내 vue 인스턴스에 스토어를 추가했지만 이를 통해 액세스할 수 없습니다.$내 부품에 저장합니다.
Error - Error in v-on handler (Promise/async): "TypeError: Cannot read
properties of undefined (reading 'error')"
console.log(this.$store) in my components returns undefined.
코드 및 상자 링크 - https://codesandbox.io/s/vdr5js
store.js
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
strict: true,
state: {
token: null,
user: null,
isUserLoggedin: false
},
mutations: {
setToken (state, token) {
state.token = token
if (token) {
state.isUserLoggedIn = true
} else {
state.isUserLoggedIn = false
}
},
setUser (state, user) {
state.user = user
}
},
actions: {
setToken ({commit}, token) {
commit('setToken', token)
},
setUser ({commit}, user) {
commit('setUser', user)
}
}
})
메인.js
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an
alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import Vuetify from 'vuetify'
import { sync } from 'vuex-router-sync'
import 'vuetify/dist/vuetify.min.css'
import store from '@/store/store'
Vue.config.productionTip = false
console.log(store) // returns store object
Vue.use(Vuetify)
sync(store, router)
/* eslint-disable no-new */
new Vue({
el: '#app',
store,
router,
vuetify: new Vuetify(),
components: { App },
template: '<App/>'
})
로그인 구성 요소
<script>
import AuthenticationService from '@/services/AuthenticationService'
export default {
data () {
return {
email: '',
password: '',
error: null
}
},
methods: {
async login () {
try {
const response = await AuthenticationService.login({
email: this.email,
password: this.password
})
this.$store.dispatch('setToken', response.data.token) //throw error
this.$store.dispatch('setUser', response.data.user)
} catch (error) {
this.error = error.responsedata.error
}
}
}
}
</script>
제가 접근할 수 있습니다.179달러와 이것.$store in the Header.vue component 제가 잘못하고 있는 것이 있으면 말씀해 주세요.
언급URL : https://stackoverflow.com/questions/74807070/vue-js-and-vuex-this-store-return-undefined-after-adding-it-to-new-vuestore
'programing' 카테고리의 다른 글
Oracle은 빈 문자열을 NULL로 간주하는 반면 SQL Server는 NULL로 간주하지 않습니다. 어떻게 하는 것이 가장 좋을까요? (0) | 2023.07.01 |
---|---|
MongoDB - DBREF가 필요합니까? (0) | 2023.07.01 |
어떻게 "참조" 값을 소방서에 삽입합니까? (0) | 2023.07.01 |
레이지 초기화예외: 프록시를 초기화할 수 없음 - 세션 없음 (0) | 2023.07.01 |
파이썬의 Zip 목록 (0) | 2023.07.01 |