在RCTConvert中编写自定义转换器

时间:2017-02-20 09:51:02

标签: ios objective-c react-native mapkit react-native-maps

我已成功为原始类型(如float和BOOL)创建了RCT_EXPORT_VIEW_PROPERTY,但无法使我的自定义结构生效,我一直从JavaScript获取(null)。

我在AIRMapMarkerManager.m中定义了我的RCT_EXPORT_VIEW_PROPERTY

textField.tintColor = [UIColor clearColor];

在RCTConvert + MoreMapKit.m中,我创建了自定义转换器

#import "RCTConvert+MoreMapKit.h"

RCT_EXPORT_VIEW_PROPERTY(importantStatus, ImportantStatus)

RCTConvert + MoreMapKit.h

+ (ImportantStatus)ImportantStatus:(id)json
{
    json = [self NSDictionary:json];
    NSLog(@"json @%", json); // returns (null)
    return (ImportantStatus){
        [self BOOL:json[@"isImportant"]],
        [self float:json[@"unimportantOpacity"]]
    };
}

AirMapMarker.h

+ (ImportantStatus)ImportantStatus:(id)json;

MapMarker.js

struct ImportantStatus {
    BOOL isImportant;
    float unimportantOpacity;
};
typedef struct ImportantStatus ImportantStatus;

@property (nonatomic, assign) ImportantStatus importantStatus;

我的JS代码发送数据

importantStatus: PropTypes.shape({
    isImportant: PropTypes.bool,
    unimportantOpacity: PropTypes.number,
}),

当我刚刚发送它们作为上面注释掉的简单道具时,我在RCTConvert + MoreMapKit.m中没有使用任何自定义转换器函数的情况下工作,所以我猜测我做错了什么。

0 个答案:

没有答案