2016-07-09 10 views
0

私のアプリケーションではいくつかの画面があり、それらの間を移動するにはReactNative.Navigatorを使用します。
後 は、ネイティブの例を反応させ、私のrenderScene関数は次のように実装されています。レンダリングしたネイティブコンポーネントをネイティブで再利用するにはどうすればよいですか?

renderScene(route, navigator) { 
    var routeId = route.id; 
    switch (routeId) 
    { 
     case 'Screen1': return <Screen1 navigator={navigator} /> 
     case 'Screen2': return <Screen2 navigator={navigator} /> 
     case 'Screen3': return <Screen3 navigator={navigator} /> 
     ... 
    } 
} 

は、このアプローチを取ると、私が特定の画面に移動するたびに、ネイティブの要素は、このために再びすべての上に作成されているようです画面。つまり、この画面に何度も移動すると、この画面階層に新しいネイティブ要素が作成されます。
たとえば、ナビゲーション・フローがScreen1 -> Screen2 -> Screen3 -> Screen2の場合、最初のステップですでにScreen2に作成されたネイティブ・エレメントは、最後のステップでは再利用されません。
したがって、私の質問は、画面のネイティブ要素を再利用できますか、何かを誤解していますか?

答えて

0

ナビゲーションでは、ナビゲーションスタック内の画面クラスの数を押します。したがって毎回、ナビゲーションスタックから画面をプッシュまたはポップする必要があります。今質問の答えはどちらかからです。

1)screen2の新しいインスタンスを作成する必要があります。

2)あなたはナビゲーションスタック内の画面の指数(インデックスn-1すなわち画面2

3との交流トップnインデックスすなわち画面3)単純にポップ画面3あなたは2を選別し、あなたに応じてそれを使用しますを交換することができます機能性。

関連する問題