从运行时卸载/释放/删除React Native View

Gas*_*ton 12 ios reactjs react-native

我正在创建一个在某些部分使用React Native的应用程序,但不是全部.

我有一个实例 RCTRootView

将其设置为nil并从超级视图中删除它似乎不会释放它.

CPU和RAM保持高位,因此似乎React应用程序仍然在线程上执行.

我怎么能阻止它?

谢谢 :)

Sha*_*643 5

RCTBridge * bridge
[bridge invalidate];
bridge = nil;
Run Code Online (Sandbox Code Playgroud)

invalidate 和 nil 将从 jsbundle 中清除所有模块,并从内存中清除 RCTRootView 实例。注意桥是 RCTBridge 的对象。


Gas*_*ton 4

您必须单独创建自己的 RTCBridge 并释放它(= nil),而不仅仅是视图。

  • 我偶然发现了这个答案,但不幸的是,每次创建新的 RCTRootView 时,我的记忆力仍在攀升。我用它创建了我自己的 RCTBridge 和我自己的 RCTRootView,并将其粘贴到一些 UIViewController 中。当 UIViewController 消失时,为什么我们必须将任何内容设置为 nil?堆栈不会消失吗?我们现在还不是 ARC 之前的时代,我错过了什么? (2认同)