반응형
VueJ에서 디스패치 및 커밋 완료 후에만 경로 트리거s
이메일과 패스워드를 취득한 후, 상점의 액션에 전달하는 폼을 가지고 있습니다.userSignIn
SignIn.vue:
onSubmit () {
if (this.$refs.form.validate()) {
const user = {
email: this.email,
password: this.password
}
this.$store.dispatch('userSignIn', user)
.then(() => {
this.$router.push('/')
}).catch(err => {
console.log(err)
})
}
}
매장 내에는userSignIn
이런 행동
store.syslog 액션:
userSignIn ({commit, getters}, payload) {
getters.Api.post(`user/signin`, {
email: payload.email,
password: payload.password
}).then(res => {
commit('userSignIn', res.data.token)
}).catch(err => {
console.log(err)
})
}
라우팅(this.$router.push('/')
)는 다음 시간 이후에 수행해야 합니다.userSignIn
커밋()commit('userSignIn', res.data.token)
그러나 실제로 발생하는 라우팅은 커밋 전에 트리거되며 사용자 토큰이 아직 설정되지 않았기 때문에 결과 및 오류가 발생합니다.
무언가를 트리거하는 방법(이 경우this.$router.push('/')
)가 완료된 후에만dispatch
그리고.commit
그 안에?
약속을 돌려준 것이 효과가 있었다.
userSignIn ({commit, getters}, payload) {
return getters.Api.post(`user/signin`, {
......
})
언급URL : https://stackoverflow.com/questions/49113023/triggering-a-route-only-after-dispatch-and-commit-completed-in-vuejs
반응형
'programing' 카테고리의 다른 글
moment.js가 포함된 최신 문자열 구문 분석 (0) | 2022.10.01 |
---|---|
파일 확장자를 PHP로 가져오려면 어떻게 해야 하나요? (0) | 2022.10.01 |
PHP URL에서 이미지 저장 중 (0) | 2022.09.28 |
로깅 프레임워크 비호환성 (0) | 2022.09.28 |
양식이 중앙에 정렬되지 않았습니다(수직 중앙/중앙). (0) | 2022.09.14 |