이미 돌연변이를 수행 중이면 commit
다른 돌연변이에 대한 방법이 없습니다. 돌연변이는 상태를 변경하는 동기식 호출입니다. 한 돌연변이 내에서 다른 돌연변이를 일으킬 수는 없습니다. https://vuex.vuejs.org/en/api.html
당신이 볼 수 있듯이, 돌연변이 핸들러는 state
및 payload
, 아무것도 더를 수신 : 여기
는 Vuex에 대한 API 참조입니다. 따라서
commit
은
undefined
으로 표시됩니다.
위의 경우, 단일 커밋과 동일한 변형 처리기의 일부로 PRODUCT 및 CATEGORY를 설정할 수 있습니다. 다음과 같은 코드가 작동하는 경우에 당신은 시도 할 수 있습니다 :
// mutations
const mutations = {
SET_PRODUCTS_AND_CATEGORIES: (state, response) => {
state.products = response.data.products
state.categories = state.products.map(function(product) { return product.category})
},
// ...
}
편집 :이 다니엘 S. Deboer에서 제공하는 아래의 대답을 참조하십시오. 올바른 방법은 그의 대답에 설명 된대로 단일 액션에서 두 개의 돌연변이를 저지르는 것입니다.
관련 (폐쇄) 문제 : https://github.com/vuejs/vuex/issues/907 –