다 이해 했는데 어떤 부분에서 막혔었는지를 모르겠다. 결국 답지를 봤는데 해당 특정 부분에서 머리가 안돌아가나 보다. 메타 인지가 중요한 걸 깨달았고, 질문에 대한 답을 하나하나 찾아가는 게 중요한 듯하다.
문제 개별 버튼 별로 눌렀을 때 해당 배열 값이 1 늘어나게 만들기
작업 3가지 분류
1. useState 선언하여 배열 값 담기
2. 버튼 클릭 시 새로운 useState 생성하여 해당 값을 1씩 늘리기
3. 해당 state 업데이트해주기
해당 문제는 나 혼자서 찾아냈다. (기존 거를 보긴 했지만..)
이해가 안 갔으나 이해한 점:
내가 한 코드
onClick={() => {
const newCount = [...like];
newCount = newCount + 1;
likeChange(newCount);
}} // 이렇게 하니까 기존 배열값은 세 개 인데 어쩌라고? 하면서 오류났음
>
{newCount[i]}
likeChange(newCount + 1); // 이렇게 하면 개별 값에 1씩 추가되는 지 알았다.
// 그러나 이건 하나씩 onClick 이벤트 설정할 때만 사용 가능
-----------------------------------------------------------------------------------
정답 코드
<span
onClick={() => {
const newCount = [...like];
newCount[i] = newCount[i] + 1;
likeChange(newCount);
}}
>
{like[i]} // 이 부분이 왜 like?
</span>
like 였던 이유는 newCount는 likeChange(b함수)를 이용해 like의 배열 값을 변경시켜주는
거기 때문이다.
1. component화 , 혹은 map을 이용해 각각 3개의 <div> 만들기 (증가, 감소 버튼을 가지고 있는)
2. 각 버튼 별로 상태를 저장하는 새로운 변수 만들기
3. 해당 변수 값 각각 변화 시키기
장애 요소 및 깨달음