반응형
vuex에 저장된 공리에서 response.data 정의되지 않음 가져오기
정의되지 않은 response.data 가져오기console.log(this.$store.getters.getData)
vue 구성 요소에서
그러나 이 문장으로 response.data를 얻을 수 있다.console.log(resp.data)
난 시도했다.console.log(data)
성공적 돌연변이에, 하지만 여전히 정의되지 않은 상태로 돌아왔어
login.vue
login: function() {
let data = this.$store
.dispatch("login", data)
.then((resp) => {
console.log(resp.data); -> it returned data
console.log(this.$store.getters.getData); -> it returned undefined
}
})
.catch(err => {});
}
store.js.
import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'
import qs from 'qs'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
status: '',
token: localStorage.getItem('token') || '',
data: {},
},
mutations: {
success(state, token, data) {
state.status = 'success'
state.token = token
Vue.set(state, 'data', data)
}
},
actions: {
login({ commit }, data) {
return new Promise((resolve, reject) => {
axios.post(url, qs.stringify(data))
.then(resp => {
commit('success', resp.data.token, resp.data)
resolve(resp)
})
.catch((error) => {
commit('error')
reject(error)
})
})
},
getters: {
getData: state => state.data,
}
})
console.log(resp.data); -> it returned data
console.log(this.$store.getters.getData); -> it returned undefined
마침내 나는 돌연변이가 상태와 페이로드라는 두 개의 매개 변수만 받아들이기 때문에 다른 매개 변수들은 통과되지 않을 것이기 때문에 왜 정의되지 않은 상태로 되돌아왔는지 알아냈다.
참조 - Vue 스토어의 돌연변이에 두 번째 매개 변수를 보낼 수 없음
대신 Vue.set(상태,'data',data) 쓰기 상태.data = data;
반응형
'Programing' 카테고리의 다른 글
Vue.js에서 사용자 지정 렌더 기능이 있는 텍스트 노드 생성 (0) | 2022.05.24 |
---|---|
C 및 C++에서 f()와 f(void)의 차이를 한 번, 그리고 전체적으로 이해 (0) | 2022.05.24 |
Vuex 글로벌 상태 변경이 Nuxt의 v-for 루프에서 리렌더 구성 요소를 트리거하지 않음 (0) | 2022.05.24 |
java.net.URLEncoder.encode(스트링)가 더 이상 사용되지 않는데, 그 대신 무엇을 사용해야 하는가? (0) | 2022.05.24 |
[부유 경고]:v-on 핸들러 오류: "TypeError: Object(...) (...).httpsCallable(...). 그러면 함수가 아님" (0) | 2022.05.23 |