2017-07-31 114 views
1

我试图在使用Swift的React Native中传递一个承诺并传递一个字段(数组)。 这是我的代码:ReactNative native-modules Promise传递字段和Swift

GuidedTourInterfaceBridge.m

@interface RCT_EXTERN_MODULE(GuidedTourInterface, NSObject) 

    RCT_EXTERN_METHOD(readFile(_ arr: NSArray, resolver: RCTPromiseResolveBlock resolve, rejecter reject: RCTPromiseRejectBlock reject)) 
@end 

GuidedTourInterface.swift:

... 
@objc 
func readFile(_ arr: NSArray, resolver resolve: RCTPromiseResolveBlock, rejecter reject: RCTPromiseRejectBlock) -> Void { 
    ... 
    resolve(["success" : true, "base64Content" : base64Content ]) 
} 
... 

JS文件:

... 
readFileInfoJson = async() => { 
    try { 

     var result = await guidedTourInterface.readFile([this.props.mapToShow+"/info.json"]); 
     ... 
    } catch (e) { 
     console.error(e); 
    } 
} 

该错误消息我收到:

guidedTourInterface.readFile不是函数。 (在 'guidedTourInterface.readFile([_ this.props.mapToShow + “/ info.json”])', 'guidedTourInterface.readFile' 是不确定的)

你有什么建议,如何解决这个或我做错了什么? 在此先感谢

回答

0

我能弄清楚如何解决问题。这是任何人谁可能需要的解决方案

GuidedTourInterfaceBridge.m

RCT_EXTERN_METHOD(readFile:(NSArray *)arr resolve:(RCTPromiseResolveBlock *)resolve reject:(RCTPromiseRejectBlock *)reject) 

GuidedTourInterface.swift:

func readFile(_ arr: NSArray, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void { 

JS文件:

var result = await guidedTourInterface.readFile([this.props.mapToShow+"/info.json"]) 
      .then((result) => {