모듈 이름 지정

Tags

모듈 이름

지금은 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);
ios native module export 이름 지정
// 예시1 const { IWantThisName } = ReactNative.NativeModules; // 예시2 (RCT prefix 제거됨) const { Test } = ReactNative.NativeModules;
javscript에서 native module 임포트 시, 지정한 이름으로 불러오는 모습
 

모듈 이름 미지정 시

모듈 이름을 지정하는 파라미터는 옵셔널이다.
이름을 지어주지 않는다면 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();
ios native module export 이름 미지정
const { CalendarModule } = ReactNative.NativeModules;
javscript에서 native module 임포트 시, obj-c 클래스명에서 prefix만 제거된 이름이 사용되는 모습