반응형
Vuej 및 Vuex가 업데이트된 어레이를 렌더링하지 않음
"cartItems"라는 Vuex 어레이에서 수량 속성을 업데이트하려고 하는데 v-for 루프를 사용하여 업데이트되지 않습니다.
ShoppingCart.vue (부모)
<div class="cart_row_container">
<CartItem v-for="(item, index) in $store.getters.getCart"
:item="item"
:loopIndex="index"
:key="item.id"
/>
</div>
CartItem.vue(자)
<div class="item_row">
<h4 class="quantity_text">{{item.quantity}}</h4>
</div>
수입 소품:
소품: ['아이템', '루프'색인']
Vuex:
state:{
cartItems: []
},
mutations:{
changeQuantity(state, data){
let newQuantity = state.cartItems[data.index]
newQuantity.quantity += data.value
this._vm.$set(state.cartItems, data.index, newQuantity)
}
},
getters:{
getCartLenght: state => {
return state.cartItems.length
},
getCart: state => {
return state.cartItems
}
}
감사합니다!
네, 어떤 이유로든 객체가 있고 키를 추가하려고 할 때 Vue와 Vuex는 객체의 키를 반응적으로 인식하지 않기 때문에 값을 업데이트하더라도 DOM을 다시 렌더링하지 않습니다.
해결 방법에서는 데이터베이스 테이블에 Quantity 속성을 추가하고 기본값으로 1로 설정하기만 하면 됩니다.
를 사용하여 새 개체 속성을 설정할 수 있습니다.이 메서드를 사용하면 속성이 반응형 속성으로 생성됩니다.
사용방법:
반응형 개체에 속성을 추가하여 새 속성도 반응형인지 확인하므로 뷰 업데이트를 트리거합니다.Vue가 정상적인 속성 추가(예: this.myObject.newProperty = 'hi')를 감지할 수 없기 때문에 반응형 개체에 새 속성을 추가하려면 이 옵션을 사용해야 합니다.
언급URL : https://stackoverflow.com/questions/53803197/vuejs-and-vuex-not-rendering-updated-array
반응형
'IT이야기' 카테고리의 다른 글
기존 HTML의 데이터를 사용하여 Vue 뷰 모델 로드 (0) | 2022.05.31 |
---|---|
불변 컬렉션과 수정할 수 없는 컬렉션 (0) | 2022.05.31 |
GCC 치명적 오류: stdio.h: 해당 파일 또는 디렉토리가 없습니다. (0) | 2022.05.31 |
구성 요소가 렌더링하기 전에 vuex에 저장소를 채우는 방법 (0) | 2022.05.30 |
Private Helper 메서드가 정적일 수 있는 경우 정적이어야 함 (0) | 2022.05.30 |