2016-07-09 66 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指數即屏幕3指數n-1即屏幕2.

3)簡單地彈出屏幕3,你將屏幕2,並根據使用它的內部交換屏幕的索引你的功能。