玩玩RN--4 RCTModuleData

今天讲这个类,这个类是一个可以算是一个RCTModule 的数据储存类

  • name RCTModule的名字
  • constantsToExport RCTModule将要暴露给js的常量
  • methods RCTModule类中所有的暴露给js的方法
  • instance RCTModule类的实例
  • methodQueue RCTModule执行的队列

instance 是有我们的extraModule 传入的 或者是 通过 new 方法sdk自己创建的

methods 这个我们可以看下他的实现

  for (unsigned int i = 0; i < methodCount; i++) {
        Method method = methods[i];
        SEL selector = method_getName(method);
        if ([NSStringFromSelector(selector) hasPrefix:@"__rct_export__"]) {
          IMP imp = method_getImplementation(method);
          auto exportedMethod = ((const RCTMethodInfo *(*)(id, SEL))imp)(_moduleClass, selector);
          id<RCTBridgeMethod> moduleMethod = [[RCTModuleMethod alloc] initWithExportedMethod:exportedMethod
                                                                                 moduleClass:_moduleClass];
          [moduleMethods addObject:moduleMethod];

遍历这个module类的方法 把所有__rct_export_开头的方法都加入到methods里面去。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容