12.11) Home 페이지 구현하기 2.기능 - 버튼 기능 질문
안녕하세요 강사님!
12.11) Home 페이지 구현하기 2.기능 강의에서,
getMonth( ) 함수는 월이 0부터 시작된다고 말씀하셨습니다.
따라서 아래 코드처럼 Header 컴포넌트에 title의 props 값으로 +1을 하여 전달해야 한다는 것을 이해했습니다.
<Header
title={`${pivoDate.getFullYear()}년 ${pivoDate.getMonth() + 1}월`}
leftChild={<Button text={"<"} onClick={onDecreaseMonth} />}
rightChild={<Button text={">"} onClick={onIncreaseMonth} />}
/>
그런데 버튼을 누르면 저번 달, 다음 달로 이동하는 함수를 만들 땐 getMonth( ) 함수를 불러오고 각각 1을 더하거나 빼는 함수로 설정한 점이 이해가 가지 않습니다.
0월부터 시작하기 때문에 각각 2를 더하거나 빼야 한다고 생각했는데 왜 1을 더하고 빼는지 모르겠습니다. ㅠㅠ
const onIncreaseMonth = () => {
setPivoDate(new Date(pivoDate.getFullYear(), pivoDate.getMonth() + 1));
};
const onDecreaseMonth = () => {
setPivoDate(new Date(pivoDate.getFullYear(), pivoDate.getMonth() - 1));
};
항상 좋은 강의 만들어주셔서 감사합니다!
답변 1
2
안녕하세요 이정환입니다.
화면에 렌더링 할 때에만 +1을 해 표기해주기 때문입니다.
따라서 Date 객체에 날짜를 늘리고 뺄때에는 그냥 일반적인 연산을 수행하듯이 해주시면 됩니다.
예를 들어 현재 3월인데 2월로 이동하려고자 한다면 Date 객체에 보관된 월은 2에서 1로 줄어들겠죠
그러나 어짜피 렌더링 할 때에는 +1을 해 표기할 것이기 때문에 결과적으로 2월이 표기될 겁니다.
이해가 되었다면 "해결" 버튼을 눌러주시면 감사하겠습니다 !
Editor Component의 최적화 불가능 이슈
0
40
2
useCallback ⊂ useMemo
0
38
2
라이브러리 설치 질문
0
35
2
linter 질문
0
42
2
감정일기장 vercel 배포 후 새로 고침 시 404페이지가 뜨는 이유
0
43
2
Sort 메서드 관련 아티클
0
44
2
4.1) React.js를 소개합니다 강의를 듣고 궁금한 점이 생겼습니다.
0
46
2
html, body에 적용하는 css 스타일 질문입니다.
0
42
2
eslint.config.js 설정 질문입니다.
0
95
2
존재하지 않는 일기 url입력 시 alert이 두 번 떠요
0
70
1
교재(3쇄)와 강의 내용 문의
0
72
2
12.13) 하단 여백 스타일링 관련 질문 드립니다.
0
94
2
에러 질문드립니다
0
111
2
VSCode 설정 문의
0
145
2
PPT 코드 관련 질문
0
68
2
useEffect와 lifecycle문의
0
93
2
프론트엔드 학습 수준 문의
0
112
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
114
2
데이터 로딩중 화면만 계속 나와요!!
0
103
2
퍼블리셔일경우 어느정도 수준까지 강의를 들어야할까요
0
134
2
이후의 커리큘럼 문의
0
157
2
실슬환경 설정에서 save후 console.log 부분이 새로고침이 안되는현상입니다.
0
116
2
최적화 관련 질문있습니다 (useMemo 등)
0
134
3
프로바이더 컴포넌트의 위치는 어떤 기준인가요?
1
130
3





