반응형
Vuex 작업이 속성 값에 액세스할 수 없음
나는 내 Vuex 작업에 데이터를 전달할 수 없을 것 같다.나는 항상 오류 메시지를 받는다.TypeError: can't access property x, data is undefined
재산가치를 넘기는 몇 가지 다른 접근법을 취했지만 효과가 없었다.내 코드 좀 봐, 내가 뭘 잘못하고 있는 거야?
저장:
import axios from 'axios'
export default {
namespaced: true,
state: {
announcements: []
},
getters: {},
actions: {
createAnnouncement({ commit }, courseId, data) {
return new Promise((resolve, reject) => {
axios
.post(`teacher/courses/announcements/create/${courseId}`, { title: data.title, message: data.message })
.then((response) => {
commit('ADD_ANNOUNCEMENT', response.data.data)
resolve(response)
})
.catch((error) => { reject(error) })
})
}
},
mutations: {
ADD_ANNOUNCEMENT(state, newAnnouncement) {
state.announcements.push(newAnnouncement)
}
}
}
구성 요소:
<script>
import { mapActions, mapGetters } from 'vuex'
export default {
data() {
return {
title: '',
message: '',
}
},
computed: {
...mapGetters('courses', ['getCourseData'])
},
methods: {
...mapActions('announcements', ['createAnnouncement']),
onSubmit() {
const { announcementTitle, announcementMessage } = this
const courseId = this.getCourseData.id
this.createAnnouncement(courseId, { title: announcementTitle, message: announcementMessage })
}
}
}
</script>
동작은 컨텍스트와 선택적 페이로드라는 두 개의 인수만 허용한다.
작업을 다음으로 변경해 보십시오.
createAnnouncement({ commit }, { courseId, data }) {
//...
}
로 그것을 발송하다.
const payload = {
courseId: this.getCourseData.id,
data: {
title: this.announcementTitle,
message: this.announcementMessage
}
}
this.createAnnouncement(payload)
https://vuex.vuejs.org/api/#actions를 참조하십시오.
참조URL: https://stackoverflow.com/questions/68538100/vuex-action-cant-access-property-value
반응형
'programing' 카테고리의 다른 글
컴파일된 vs.해석된 언어 (0) | 2022.04.13 |
---|---|
모델 변경 사항을 감지하는 Vue 지시문 (0) | 2022.04.13 |
모키토:유효하지 않은 UseOfMatchers예외 (0) | 2022.04.13 |
VueJs 로컬 자산 경로 (0) | 2022.04.13 |
VueJS에서 템플릿에 추가된 구성 요소를 동적으로 컴파일하는 방법 (0) | 2022.04.13 |