-
글쓴이글
-
2022년 1월 28일 07:20 #25966
박세진참가자강사님이 설명하신대로 해보니까 새로 추가한 항목은 id가 충돌이 나는지 수량이 안바뀌고, 여러 버그들이 있어서
props.dispatch( {type : '항목추가', 데이터 : {id: 찾은상품.id, name : 찾은상품.title, quan : 1}} );
이 부분을 제가
let [cartIdCount, changingCartIdCount] = useState(0);
(중략)
<button
className="btn btn-danger"
onClick={() => {
changingCartIdCount(cartIdCount + 1);
props.dispatch({
type: "항목추가",
데이터: {
id: cartIdCount,
name: 찾은상품.title,
quan: 1,
},
});
history.push("/Cart");
}}
>
장바구니 담기
</button>이렇게 바꾸었습니다.
'장바구니 담기'버튼을 누르면 cartIdCount가 1이 증가하고, 해당 값이 id로 들어가서 자연스럽게 장바구니 배열에 id가 1부터 하나씩 쌓이는식으로 만들어 보려고 했는데요,
여기서 문제가 '장바구니 담기' 버튼을 눌러도 cartIdCount값이 증가하질 않아요. 콘솔로 띄워보니까 버튼을 눌러도 cartIdCount값이 계속 0으로만 뜹니다....
아무래도 버튼을 누르면 다른 화면으로 이동해서 그런가 changingCartIdCount(cartIdCount + 1); 이 부분이 동작을 안하는것같은데 어떻게 해야 이 함수를 동작 시킬 수 있을까요?
2022년 1월 28일 10:40 #25981
codingapple키 마스터버튼누르면 cartIdCount 가 +1 되고있는건 맞습니다 근데 state변경함수는 다른 코드들보다 좀 늦게 동작할 뿐입니다
늦게 동작하는게 싫으면 state말고 일반변수도 좋을듯요
2022년 2월 6일 17:51 #26542
박세진참가자state함수가 안돼서 강사님 말대로
let cartIdCount = 0;
(중략)
<button
className="btn btn-danger"
onClick={() => {
cartIdCount = cartIdCount+1;console.log(cartIdCount);
props.dispatch({
type: "항목추가",
데이터: {id: cartIdCount,
name: 찾은상품.title,
quan: 1,
},
});
history.push("/Cart");
}}
>
장바구니 담기
</button>이렇게 하고 실행을 해보았더니 버튼을 눌렀을 때 cartIdCount = cartIdCount+1; 이부분이 딱 한번만 실행되고(콘솔창을 보니까 cartIdCount값이 1이 되더라구요), 두번째부터는 cartIdCount값이 안올라가요. 버튼을 계속 눌러보아도 cartIdCount값이 1입니다...
무슨문제인걸까요?
-
글쓴이글
- 답변은 로그인 후 가능합니다.