안녕하세요 선생님
cart.js
<button onClick={()=> {
dispatch(increaseCount({ id: product[i].id, price: product[i].price}))
}}>+</button>
이렇게 리덕스로 id와 price를 보냈습니다.
store.js
increaseCount(state, action) {
let a = action.payload;
let b = state.findIndex(product => product.id === a.id);
console.log(action.payload);
if (b !== -1) {
let currentPrice = state[b].price;
state[b].count += 1;
state[b].price = currentPrice * state[b].count;
}
},
계속 해보다가 지금 코드는 이렇구요ㅠ
수량이 증가함에따라 가격도 같이 원래 본가격을 더하는식으로 만들려고 했는데
console.log(action.payload); 이걸 찍어서 출력해보면 {id: 2, price: 70000} 이렇게 잘 나옵니다.
근데 + 버튼을 누르면 {id: 2, price: 140000}로 바뀌고 또 누르면 {id: 2, price: 280000} 14 + 7 인 21이 나와야하는데 14 + 14로
price값이 계속 상태업데이트가 됩니다.. 고유의 상품값을 따로 변수에 담아보고 return값으로 상태변경후 다시 돌려주기도 해봤는데
계속 버튼을 누를때마다 price값이 계속 변동되서 계산이 잘안되는것같습니다 도와주세요..ㅜㅜ