개발/🟦 React
컴포넌트의 옵션 props 기본 지정_컴포넌트에 지정하면 안되나?
비니_
2025. 11. 25. 15:32
728x90
현재는 이렇게 props에 기본값을 주는 방식으로 했는데 변하지 않을 값이라면
컴포넌트 안에 코드 내에 지정값으로 주려고 했으나,
1. 확장 가능하고 유연한 컴포넌트 => 후에 바뀔 수 있기 때문에
2. 더 리액트스러운 방식(가독성과 확장성 모두 확보된 패턴)
이라고 나으 선생님.. 지피티가..ㅋㅋㅋ
const defaultLocalizer = dateFnsLocalizer({
format,
parse,
startOfWeek,
getDay,
locales: locales,
});
function defaultEventPropGetter(){
~~~
}
function CustomCalendar({
date,
events = [],
localizer = defaultLocalizer,
toolbar = false,
onNavigate,
eventPropGetter = defaultEventPropGetter
}){
const month = getMonth(date) + 1;
const year = getYear(date);
return(
<>
<div className="tit_box">
{mobileDesign && (
<Button
className='btn_prev'
isOutline
icon='ChevronLeft'
aria-label='Prev'
onClick={btnPrevMonth}
/>
)}
<div className="ylp-month-title">
{formatByLang(date, "LLLL yyyy", language)}
</div>
{mobileDesign && (
<Button
className='btn_next'
isOutline
icon='ChevronRight'
aria-label='Next'
onClick={btnNextMonth}
/>
)}
</div>
<div className="ylp-month-cal">
<Calendar
localizer={localizer}
events={events}
date={date}
views={["month"]}
toolbar={toolbar}
eventPropGetter={eventPropGetter} // 달력에 보여지는 이벤트 항목의 스타일이나 클래스를 반환
startAccessor="start"
endAccessor="end"
onNavigate={onNavigate} // toolbar가 true일 때 사용
components={{
event: CustomEvent,
header: CustomHeader,
dateCellWrapper: (props) => <CustomDayCell {...props} month={month} year={year} />,
dateHeader: (props) => <CustomDayCellHeaderContent {...props} month={month} year={year} />,
}}
selectable
resizable
/>
</div>
</>
)
};
더 좋은 코드를 고민하는데 봐줄사람이 없으니..
지피티에게 많이 물어보는 거 같당 흅😂

728x90