React Native 学习笔记(一)

时间:2022-09-04 12:03:31

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的值;