我有一个反应原生应用程序,我正在建设,并为其中的一部分,我已经实现了我自己的自定义模块(在这种情况下,一个webview)。我已经设置好了,一切正常,直到我在同一个屏幕上渲染两个相同的模块。反应本机模块不能一起工作
一旦我在同一个屏幕上有两个相同的模块,Objective-C中调用onChange方法返回到javascript的代码不再执行,我可以通过Javascript更长的时间与我的模块通信。
我注意到,我的模块的每个实例都有一个标签或类似的东西,但我不知道该怎么办才能解决这个问题。
更新
基本上我添加了一些代码,我可以看到的问题是,当新的模块添加到屏幕上,它会覆盖前一个模块的回调。一旦新模块离开屏幕,Objective-C中的回调仍然“聚焦”在最近呈现的模块上...
这可能与此有关吗?
ReactNative.findNodeHandle(this.refs[WEB_VIEW]);
编辑
我一直在找过一些开源代码,我想我已经缩小的问题。基本上我的模块由WebView和WebViewManager组成。 WebViews非常简单,仅显示网页内容等,管理员负责控制其行为。
scrollToTop() {
RNTWebViewManager.scrollToTop();
}
在该管理器将然后调用相应的方法:
当我想打电话从阵营本地模块上的方法,我可以通过调用这样的WebViewManager方法这样做Objective-C的。但是,似乎一次在屏幕上显示多个WebView实例时,管理者不知道要调用哪个实例,而是要求调用放置在屏幕上的最新实例。
在开源项目中,我看到他们通过传递来获得特定的视图标签,然后由经理用它来调用他们的WebViews的正确实例,但我仍然试图了解如何实现这一点。
这里是下面的项目,我一直在寻找的链接: https://github.com/CRAlpha/react-native-wkwebview
你需要发布一些代码或没有人能够提供帮助。 –
不幸的是,没有太多的代码发布... – Asleepace
好的东西,而不仅仅是解释。例如,*“我已经实现了我自己的自定义模块(在本例中是一个webview)。”*或*“Objective-C中的代码将onChange方法调用回javascript”*或者你的意思是“*我注意到我的模块的每个实例都有一个标签或类似的东西“*。所有这些将是一个开始。 –