2016-09-02 7 views
0

私のアプリケーションはnavigatoriosを使用しています。新しいシーンがスタックにプッシュされるたびに、メモリが解放されませんでした。それはあなたが以前のルートにそれをポップすることができますので、直感的なようです。私はプッシュの代わりに置換を使用しようとしましたが、タイトルは変更されません。ネイティブナビゲータメモリが解放できません

私の場合、回避策はありますか? Requiremnent:すべてのルート

編集上のタイトルを変更します。私のアプリケーションでは

、そこにいくつかのセクションがあり、各セクションごとに異なるナビゲータのタイトルを持っています。

タイトルを変更するには、次のセクションを表示するためにプッシュを使用します。それがますます使用していることを示すxcodeのメモリメーター。

this.refs.nav.push({ 
    component: component, 
    title: title, 
    }); 

回答は最後にナビゲータの代わりNavigatorIOSを使用するように変更します。プッシュの代わりに置換を使用する。

答えて

0

あなたの問題を完全に診断できるようにここにコードを表示できますか?

いずれにしても、Navigatorではすべてのルート上のタイトルを簡単に変更できます。ルートNavigatorコンポーネントでルートを定義します。あなたはrenderScene方法は、いくつかの小道具を渡し、これはあなたが次の画面にタイトルを渡す場所で見ることができるように

const routes = { 
    Movies, 
    Contact 
}; 

は、あなたのrenderScene方法

renderScene(route, navigator) { 
    let Component = routes[route.name]; 
    return <Component navigator={navigator} {...route.passProps}/> 
    } 

内のカスタムコンポーネントを作成します。

希望すると助かります!

+0

ありがとうございました。私はこの事件についてさらに詳しい情報を追加しました。 – bns

+0

ルートが解放されていないため、メモリが累積しています。ナビゲータ全体をスタックとして想像してください。あなたのコードが行っていることは、そのスタックにアイテムを追加し続けることです。これを解決するには、特定の項目を1つずつポップアップするか、アプリケーション全体に適用可能なスタック全体をリセットする必要があります。 –

関連する問題