如何从反应原生桥将参数传递给swift类
Posted
技术标签:
【中文标题】如何从反应原生桥将参数传递给swift类【英文标题】:How to pass parameter to swift class from react native bridge 【发布时间】:2020-04-06 16:22:42 【问题描述】:我有一个反应原生应用程序,我从这个应用程序调用一个 swift 类。我为此使用了一座桥 我想将一个参数传递给我的 Counter 类的 init。我怎样才能做到这一点?我对 swift 和反应非常陌生。
@interface RCT_EXTERN_MODULE(Counter, NSObject)
swift 版本是 5.0 反应原生版本是 0.62.1
【问题讨论】:
请分享更多代码。 【参考方案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);
【讨论】:
以上是关于如何从反应原生桥将参数传递给swift类的主要内容,如果未能解决你的问题,请参考以下文章
如何将额外的参数传递给自定义UIView类以便在swift中进行初始化