모듈 이름
지금은 RCTCalendarModule.m 네이티브 모듈이
RCT_EXPORT_MODULE 매크로
만 포함하고 있다.RCT_EXPORT_MODULE 매크로
는 네이티브 모듈 클래스를 React-Native로 exports, registers 해주는 역할을 한다.RCT_EXPORT_MODULE
매크로는 옵셔널 인자로 모듈 이름을 받는다.이 옵셔널 인자를 지정하면 Javascript 단에서 이 모듈에 접근할 때, 해당 이름으로 접근할 수 있도록 해준다.
인자는 string literal이 아니므로 쌍따옴표를 추가하지 않도록 주의하자.
- ⭕️ RCT_EXPORT_MODULE(CalendarModuleFoo)
- ❌ RCT_EXPORT_MODULE("CalendarModuleFoo")
모듈 이름 지정 예시
// 예시1 RCT_EXPORT_MODULE(IWantThisName); // 예시2 (RCT prefix) RCT_EXPORT_MODULE(RCTTest);
// 예시1 const { IWantThisName } = ReactNative.NativeModules; // 예시2 (RCT prefix 제거됨) const { Test } = ReactNative.NativeModules;
모듈 이름 미지정 시
모듈 이름을 지정하는 파라미터는 옵셔널이다.
이름을 지어주지 않는다면 Obj-C의 클래스명이 그대로 사용되는데,
RCT
, RK
와 같은 prefix는 제거된다.RCTCalendarModule
(obj-c) →CalendarModule
(javascript)
// Without passing in a name this will export the native module name as the Objective-C class name with “RCT” removed RCT_EXPORT_MODULE();
const { CalendarModule } = ReactNative.NativeModules;