如何在react native中重用已渲染的本机组件?

时间:2016-07-09 07:38:56

标签: react-native

在我的应用程序中,我有几个屏幕,我使用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创建的本机元素将无法在最后一步中重复使用。
因此,我的问题是,我可以重用屏幕的原生元素,还是我误解了什么?

1 个答案:

答案 0 :(得分:0)

在导航中,您可以在导航堆栈中推送屏幕类的数量。因此,每次您需要从导航堆栈中推送或弹出屏幕。现在你质疑答案来自它,

1)您需要创建screen2的新实例。

2)您可以在导航堆栈内交换屏幕索引(交换顶部n索引,即屏幕3,索引为n-1,即屏幕2。

3)只需弹出屏幕3,您将屏幕2并根据您的功能使用它。