我正在为 React Native 编写本机模块,并且需要将自定义数据类型的值返回给 React Native。要返回一个值,我使用Promise 方法,如下所示:
// .swift
@objc
func getCardType(
_ cardNumber: NSString,
resolver resolve: RCTPromiseResolveBlock,
rejecter reject: RCTPromiseRejectBlock
) {
let cardType = cardUtils.getTypeOf(cardNumber: String(cardNumber))
resolve(cardType)
}
并将其暴露给 React Native,如下所示:
// .m
#import "React/RCTBridgeModule.h"
@interface RCT_EXTERN_MODULE(CheckoutBridge, NSObject)
RCT_EXTERN_METHOD(getCardType:(NSString)cardNumber
resolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject
)
@end
的类型cardType
是CardType
由3rd 方库定义的
当从 React Native 调用函数时,我收到一个null
值,即使我可以看到 Native 端的值实际上是CardType(scheme: .visa, name: ...)
.
我认为发生这种情况是因为cardType
它不是受支持的参数类型之一,并意识到可以使用 RCTConvert 以某种方式允许CardType
通过桥发送值。我很难找到有关如何执行此操作的在线参考,尤其是在想使用 Swift 执行此操作时。有任何想法吗?