CC's blog

CC的技术博客 专注于 it 互联网的技术爱好者

React Native 函数作为iOS原生回调

React Native 函数作为iOS原生回调

  • 起因,在封装地图控件中我们的React native Mapview 不是我们想象中的那么完美,要想和原生控件想媲美估计还需等到RN后续更新,于是乎,我们的业务需求又不能因为技术问题所流产,那么就需要我们使用原生的控件去封装
  • 那么问题就来了,在原生控件的时间处理不确定的情况下,我们就需要在RN中将时间传递给原生,那么需求就来了.博主曾经看到过一篇写React Native 不能作为原生的回调.在此,可以完全推翻此种谬论,
    如下

原生视图处理


#import <MapKit/MapKit.h>
//导入RCTComponent  头文件
#import "RCTComponent.h"

@interface XSYCustomerMapView : UIView

//在这里定义一个存储 RN 传递过来时间的Block属性
@property (nonatomic, copy) RCTBubblingEventBlock onBtnClick;

@end

原生视图管理类处理

//
//  RCTCustomerMapViewManager.m
//  XSYMapView
//
//  Created by bear on 16/9/12.
//  Copyright © 2016年 Facebook. All rights reserved.
//

#import "RCTXSYCustomerMapViewManager.h"

@implementation RCTXSYCustomerMapViewManager

//导出视图的宏定义
RCT_EXPORT_MODULE()

//导出视图属性的宏定义
RCT_EXPORT_VIEW_PROPERTY(onBtnClick, RCTBubblingEventBlock)

- (UIView *)view
{
  return [[XSYCustomerMapView alloc] init];
}


@end

在React Native 中这么调用

//一般在render  方法中

<RCTXSYCustomerMapView {...this.props} onBtnClick={this.props.onBtnClick} />
none

添加新评论