在我的应用程序中,我有几个屏幕,我使用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 :(得分:0)
在导航中,您可以在导航堆栈中推送屏幕类的数量。因此,每次您需要从导航堆栈中推送或弹出屏幕。现在你质疑答案来自它,
1)您需要创建screen2的新实例。
2)您可以在导航堆栈内交换屏幕索引(交换顶部n
索引,即屏幕3,索引为n-1
,即屏幕2。
3)只需弹出屏幕3,您将屏幕2并根据您的功能使用它。