1.自定义view时,外部需要传进view一个图片时,不用传进去整个Image,只需要传进去一个source就行了,属性类型 PropTypes.node;
2.js调用原生代码:
在.h 引入 #import "RCTBridgeModule.h"并实现RCTBridgeModule协议
例如:
// RNTest.h
#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
@interface RNTest : NSObject<RCTBridgeModule>
@end
在.m
为了实现RCTBridgeModule协议,你的类需要包含RCT_EXPORT_MODULE()宏。这个宏也可以添加一个参数用来指定在Javascript中访问这个模块的名字。如果你不指定,默认就会使用这个Objective-C类的名字
通过RCT_EXPORT_METHOD()宏来实现js调用的oc方法;
例如:
//
// RNTest.m
#import "RNTest.h"
@implementation RNTest
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(addEvent:(NSString *)name callback:(RCTResponseSenderBlock)callback){
NSString *callbackStr = @"回调函数";
// 可以判断调用的是哪个方法
if ([name isEqualToString:@"addTestEvent"]) {
[self addTestEvent];
} else{
//
}
callback(@[[NSNull null], callbackStr]);
}
- (void)addTestEvent {
NSLog(@"addTestEvent调用了");
}
@end
其中的callback的返回值,是个数组,可以是返回给js的值;