데이트피커에서 나온 에러,,,
const [selectedMeetingTime, setSelectedMeetingTime] = useState<Date | null>(new Date());
JavaScript
복사
selectedMeetingTime 초기값을 서버에서 가져온 meetingTime으로 넣어서 생긴 오류였다. 그래서 초기값을 그냥 비어두었는데
또 같은 오류가 났다.
이번 오류는 서버에 미팅시간이 없을 때 나온 오류
타입의 문제인 것 같아서
useEffect(() => {
const meetingTime = new Date(String(chat?.[0]?.meeting_time));
if (meetingTime instanceof Date && !isNaN(meetingTime.getTime())) {
setSelectedMeetingTime(meetingTime);
}
}, [chatRoomId, chat]);
JavaScript
복사
이렇게 채팅방 정보 가져올 때 미팅타임의 타입을 확인해주었다.
instanceof Date : meetingTime이 Date객체의 인스턴스인지 확인 (null이나 다른 타입이 아닌지 확인)
1.
!isNaN(meetingTime.getTime()) : meetingTime 객체에 getTime() 메서드를 호출한 결과가 NaN(Not-a-Number)이 아닌지 확인
2.
getTime(): 표준시에 따라 지정된 날짜의 시간에 해당하는 숫자 값을 반환
meetingTime이 유효한 날짜 객체가 아닌 경우 geTime() 하면 NaN이 발생 → 즉 유효한 날짜인지 확인
근데 이거 useEffect 없이 쓸 수 있을까? 고민해봐야겠다.