您的位置:首页 > Web前端 > React

【react-native-0.31-iOS】封装原生组件并调用(02)

2016-08-17 15:10 681 查看
***由于RN上的现有组件不能满足我们的日常开发需求,所以我们要自己动手去封装一些组件。***


1.在React Native中,一个“原生模块”就是一个实现了“RCTBridgeModule”协议的Objective-C类(个人理解RCTBridgeModule就是react与native之间的桥),下面我们来创建一只猫。

#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"

@interface CreatCat : NSObject <RCTBridgeModule>

@end


#import "CreatCat.h"
@implementation CreatCat


2.为了实现RCTBridgeModule协议,你的类需要包含RCT_EXPORT_MODULE()宏。这个宏也可以添加一个参数用来指定在Javascript中访问这个模块的名字。如果你不指定,默认就会使用这个Objective-C类的名字。

RCT_EXPORT_MODULE();


3.你必须明确的声明要给Javascript导出的方法,否则React Native不会导出任何方法。声明通过RCT_EXPORT_METHOD()宏来实现:

@implementation CreatCat

RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(cratCat:(NSString *)name sex:(NSString *)sex age:(int)age)
{
NSLog(@"我创建了一只名叫%@的猫,性别%@, 今年%d岁", name, sex, age);
}

@end


4.从Javascript里可以这样调用这个方法

var cat = require('react-native').NativeModules.CreatCat;
cat.cratCat('机器猫', '男', 2);


5.创建完成,本章与官网上讲的基本无差别,我们可以在自己创建的类中编写原生代码,创建任何组件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  RN native objective-c