【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.创建完成,本章与官网上讲的基本无差别,我们可以在自己创建的类中编写原生代码,创建任何组件。
相关文章推荐
- React-Native踩坑之路:react-native原生组件封装(iOS)
- React-native 调用原生组件
- react-native封装原生下拉刷新组件
- 《React-Native系列》13、 组件封装之Dialog(iOS和Android通用)
- 《React-Native系列》组件封装之Dialog(iOS和Android通用)
- React-Native 原生模块(iOS)调用
- 支持android&ios高度自适应及JS相互调用的组件react-native-webview2
- react native学习笔记25——Android原生模块的封装与调用
- React-Native调用iOS原生方法
- 支持android&ios高度自适应及JS相互调用的组件react-native-webview2
- React Native 原生平台调用React Native组件
- react-native组件封装与传值
- ReactNative之原生模块开发并发布--iOS篇
- React Native之调用安卓原生控件
- 【react-native-0.31-iOS】热更新准备-iOS(03)
- ReactNative之原生模块开发并发布--iOS篇
- 在Android原生中嵌入React Native,进而React Native调用原生
- ios 原生应用和React native 结合开发1.环境搭建
- react-native 调用原生模块详解
- React Native移植到原生iOS平台项目