2015-12-08 2 views
12

Я создаю приложение, в котором используется React Native, но не все.Unload/Release/Remove React Native View from runtime

У меня есть экземпляр RCTRootView

Установка его nil и извлекая его из надтаблицы не кажется, чтобы освободить его.

Процессор и оперативная память остаются высокими, поэтому кажется, что потоки приложений React выполняются на потоках.

Как я могу остановить его?

Спасибо :)

+0

Дополнительная информация: [Bridge] освобождения памяти, когда выскакивают ViewController, который содержит Реагировать родной компонент # 1487 https://github.com/facebook/react-native/issues/1487 – Gaston

+0

ли вы попробовать autoReleasePool? – Gihan

ответ

3

Вы должны создать свой собственный RTCBridge отдельно и отпустить его (= ноль), а не только вид.

+0

Я наткнулся на этот ответ, но, к сожалению, моя память все еще поднимается каждый раз, когда я создаю новый RCTRootView. Я создаю свой собственный RCTBridge и свой собственный RCTRootView с ним и вставляю его в некоторый UIViewController. Когда UIViewController уходит, почему мы должны установить что-нибудь в нуль? Разве стек не исчезнет? Мы не в дни до ARC здесь, что мне не хватает? – yura

3
RCTBridge * bridge 
[bridge invalidate]; 
bridge = nil; 

invalidate и nil очистит все модули от jsbundle и очистит экземпляры RCTRootView из памяти. Примечание - мост является объектом RCTBridge.

+0

Я потерял много времени на этом. Благодаря! –