Project/사이드 프로젝트

[React Native (RN)] 기본 캘린더 화면 구현하기 (react-native-calendars, Typescript)

아밍나 2024. 8. 27. 12:05
728x90

React Native 기본 캘린더 화면을 구현합니다.

Typescript로 작성되었으며, react-native-calendars 라이브러리를 사용합니다.

 

https://github.com/wix/react-native-calendars

 

GitHub - wix/react-native-calendars: React Native Calendar Components 🗓️ 📆

React Native Calendar Components 🗓️ 📆 . Contribute to wix/react-native-calendars development by creating an account on GitHub.

github.com


구현

1. react-native-calendars 라이브러리 설치

npm install react-native-calendars

 

2. 기본 설정 캘린더 코드 작성 (Typescript)

import React, {useState} from 'react';
import {Calendar, DateData} from 'react-native-calendars';

export default function App() {
  const [selected, setSelected] = useState<string>('');

  const onDayPress = (day: DateData) => {
    setSelected(day.dateString);
  };

  return (
    <Calendar
      onDayPress={onDayPress}
      markedDates={{
        [selected]: { selected: true, disableTouchEvent: true, selectedDotColor: 'orange' }
      }}
    />
  );
}

 

결과 화면

21일 선택 화면

 

3. 언어 설정 - 한국어

import React, {useState} from 'react';
import {Calendar, DateData, LocaleConfig} from 'react-native-calendars';

LocaleConfig.locales.kr = {
  monthNames: [
    '01월', '02월', '03월', '04월', '05월', '06월', 
    '07월', '08월', '09월', '10월', '11월', '12월'
  ],
  monthNamesShort: [
    '01월', '02월', '03월', '04월', '05월', '06월',
    '07월', '08월', '09월', '10월', '11월', '12월'
  ],
  dayNames: [
    '일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일'
  ],
  dayNamesShort: [
    '일', '월', '화', '수', '목', '금', '토'
  ]
}
LocaleConfig.defaultLocale='kr'

 

결과 화면

 

다시 영어로 설정하고 싶은 경우 아래 코드를 작성하시면 됩니다.

LocaleConfig.locales.en = LocaleConfig.locales[''];
LocaleConfig.defaultLocale='en'

 

728x90
반응형