【问题标题】:Unload / Release / Remove React Native View from runtime从运行时卸载/释放/删除 React Native View
【发布时间】:2016-03-14 02:33:29
【问题描述】:

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

我有一个RCTRootView 的实例

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

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

我怎样才能阻止它?

谢谢:)

【问题讨论】:

标签: ios reactjs react-native


【解决方案1】:
RCTBridge * bridge
[bridge invalidate];
bridge = nil;

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

【讨论】:

  • 我为此浪费了很多时间。谢谢!
【解决方案2】:

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

【讨论】:

  • 我偶然发现了这个答案,但不幸的是,每次我创建新的 RCTRootView 时,我的记忆力仍在攀升。我用它创建了我自己的 RCTBridge 和我自己的 RCTRootView,并将其粘贴在一些 UIViewController 中。当 UIViewController 消失时,为什么我们必须将任何内容设置为 nil?堆栈不会消失吗?我们现在不是 ARC 之前的日子,我错过了什么?
猜你喜欢
  • 1970-01-01
  • 2017-10-12
  • 2016-11-28
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
  • 2021-01-13
  • 1970-01-01
  • 2020-03-24
相关资源
最近更新 更多