2017-07-31 75 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) => {