4

我正在尝试使用 Swift 在 React Native 中运行一个承诺并传递一个字段(数组)。这是我拥有的代码:

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'未定义)]

你有什么建议如何解决这个问题或我做错了什么?提前致谢

4

1 回答 1

3

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

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) => {
于 2017-07-31T15:22:40.843 回答