【问题标题】:How to pass parameter to swift class from react native bridge如何从反应原生桥将参数传递给swift类
【发布时间】:2020-04-06 16:22:42
【问题描述】:
我有一个反应原生应用程序,我从这个应用程序调用一个 swift 类。我为此使用了一座桥
我想将一个参数传递给我的 Counter 类的 init。我怎样才能做到这一点?我对 swift 和反应非常陌生。
@interface RCT_EXTERN_MODULE(Counter, NSObject)
swift 版本是 5.0 反应原生版本是 0.62.1
【问题讨论】:
标签:
ios
objective-c
swift
react-native
【解决方案1】:
您不能从 js 传递参数来实例化您的本机模块,因为 RN 使用默认初始化程序 init 为每个桥创建单例实例。但是您可以使用函数设置所需的属性,例如
MyModuleExport.m:
@interface RCT_EXTERN_MODULE(MyModule, NSObject)
RCT_EXTERN_METHOD(construct:(NSString*)name value:(NSInteger)value)
@end
MyModule.swift:
@objc(MyModule)
class MyModule: NSObject {
var name: String!
var value: Int!
@objc
func construct(_ name: String, value: Int) {
self.name = name
self.value = value
}
JS:
const module = NativeModules.MyModule
module.construct("Hello", 100);