我正在桥接到iOS视图,此视图被包装到ReactNative组件中。
因此使用requireNativeComponent('ViewName', null)
检索视图。
e.g。
var CircleTableView = requireNativeComponent('CircleTableView', null);
var CircleTableViewManager = NativeModules.CircleTableViewManager;
doStuff() {
CircleTableViewManager.doStuffInIos();
}
class NativeCircularList extends Component {
render() {
return <CircleTableView/>
}
}
在我的ReactNative主要组件中,我使用了这个包装组件两次。 e.g。
render() {
return (
<View>
<NativeCircularList/>
<NativeCircularList/>
<View>
)
在iOS RCTViewManager中,我保留了对view()方法中创建的视图的引用,以便稍后我可以在doStuffInIos()中使用它。
e.g。
@objc(CircleTableViewManager)
class CircleTableViewManager : RCTViewManager {
var coolCircleTableView: CoolCircleTableView!
override func view() -> UIView! {
coolCircleTableView = CoolCircleTableView();
return coolCircleTableView;
}
@objc func doStuffInIos() {
DispatchQueue.main.async() {
self.coolCircleTableView.doStuff()
}
}
}
但是,RCTViewManager似乎是一个应用程序范围的单例,这意味着当为小部件的第二个实例调用view()时,将出现第一个调用的引用。事实上,文档声明必须为每次调用返回一个新的实例到view(),这很好,但我希望能够在某些时候使用这些实例!
是否有支持同一iOS(和/或Android)桥接视图的多个实例的模式?
由于