Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 使用React路由器本机卸载React组件时,Android UI组件仍在运行_React Native_React Router_React Native Android - Fatal编程技术网

React native 使用React路由器本机卸载React组件时,Android UI组件仍在运行

React native 使用React路由器本机卸载React组件时,Android UI组件仍在运行,react-native,react-router,react-native-android,React Native,React Router,React Native Android,当将我的应用程序的导航处理从react-native router flux移动到react-router-native时,我似乎发现了我的应用程序的本机UI组件如何处理的问题 我的应用程序有几个动画数据图,我已经用Java实现并导入到React Native中。可视化由后台线程上的一些资源匮乏的可运行程序提供支持,这些线程在加载ui组件时启动。以前,我通过将本机ui组件(isVisible)的一个属性更改为false来停止这些线程 但是,当使用react router native(在转换时卸

当将我的应用程序的导航处理从react-native router flux移动到react-router-native时,我似乎发现了我的应用程序的本机UI组件如何处理的问题

我的应用程序有几个动画数据图,我已经用Java实现并导入到React Native中。可视化由后台线程上的一些资源匮乏的可运行程序提供支持,这些线程在加载ui组件时启动。以前,我通过将本机ui组件(isVisible)的一个属性更改为false来停止这些线程

但是,当使用react router native(在转换时卸载组件)离开包含这些本机ui组件之一的屏幕时,即使在react组件中调用了componentWillUnmount,为我的绘图提供动力的本机线程仍会继续运行

我试图通过在componentWillUnmount中将本机ui组件prop isVisible更改为false来关闭它们,但即使这样也不能解决问题。可能是因为在componentWillUnmount之后没有该组件的另一个呈现


有没有人知道如何在卸载本机UI组件的父组件时强制关闭本机UI组件及其所有进程?

经过一段时间的努力,我想出了一个解决方案,我认为应该在这里分享

React本机文档中不包括它,但有一个名为
onDropViewInstance
的函数,每当卸载本机Java UI组件时,该函数就会在React SimpleViewManager类中调用

为了解决某些线程仍在运行的问题,我所要做的就是在
onDropViewInstance
函数中显式停止这些线程