수정 페이지와 연결되는 부분인 컴포넌트에 대해서 살펴보자
- 입력되어 보내진 데이터를 날짜 순으로 정렬한다.
- 해당 월의 데이터를 필터링한다.
- 필터링된 데이터를 날짜 순으로 정렬해준다.
- 정렬된 데이터를 반복하면서 각 항목에 렌더링 해준다.
sort()로 위치 정렬 후 getTime()을 사용하여 지정된 날짜의 시간에 해당하는 숫자값을 반환 시켜준다.
코드를 살펴보면
~~Months
라고 있는 부분~~
는 double tilde 연산자이다. tilde 연산자는 비트연산자로, NOT이기 때문에 0과 1을 뒤집는다. 그렇기에~~
는 두번 반복해 주는 것이다. 대신에 Math.floor()를 사용할 수 있다.
map() 매서드를 사용하여 정렬된 데이터를 반복하면서 각 항목을 렌더링 해주면 원하는 값들이 나오게 된다.
다른 컴포넌트보다 어려웠던 항목 수정 컴포넌트는
custom 훅을 사용하였고 페이지 간 이동할 수 있는 useNavigate 훅, useParams를 추가적으로 사용하여 정확한 정보를 받아와 수정, 삭제, 저장까지 할 수 있게 해주었다.
유효성 검사와 spread Operater를 사용, 배열을 순회하며 일치하는 항목을 수정해줍니다.
배열에서 현재 파라미터와 일치하는 항목을 제외한 나머지 항목들로 구성된 새로운 배열을 생성하게 해준다.
navigate('/')는 이전 페이지로 돌아가는 역할을 해준다.