React native 导航组件/屏幕是否必须卸载?
我正在尝试不同的方法来构建一个带有react导航和 我想知道我的应用程序组件是否必须卸载 在react navigation DrawerNavigator和TabNavigator中,组件在不活动时安装并放入内存,这是否会导致一些性能问题 我不知道从一个屏幕切换到另一个屏幕,让它们挂载是否是最好的导航方式 假设我的应用程序树如下所示: --应用程序 首先,我创建了一个materialBottomTabNavigator,用于在所有堆栈(stack1、stack2、stack3和stack4)内切换。 但是当我访问所有的堆栈时,都安装了,我问自己,这是一个问题吗 所以现在我用另一种方法,当我切换到另一个堆栈时,尝试卸载每个堆栈,现在我问自己,这是一个问题吗 哈哈,请帮我找些好的理由:) 反应本机:0.57.8 反应导航:3.1.5React native 导航组件/屏幕是否必须卸载?,react-native,react-navigation,React Native,React Navigation,我正在尝试不同的方法来构建一个带有react导航和 我想知道我的应用程序组件是否必须卸载 在react navigation DrawerNavigator和TabNavigator中,组件在不活动时安装并放入内存,这是否会导致一些性能问题 我不知道从一个屏幕切换到另一个屏幕,让它们挂载是否是最好的导航方式 假设我的应用程序树如下所示: --应用程序 首先,我创建了一个materialBottomTabNavigator,用于在所有堆栈(stack1、stack2、stack3和stack4)内
感谢各位当您使用StackNavigator或TabNavigator时,卸载哪个组件完全取决于用户是否离开它或返回它 考虑以下场景,如React navigation文档中所述- 考虑一个带有屏幕a和B的堆栈导航器。导航到a后,调用其组件didMount。当按下B时,它的componentDidMount也会被调用,但是A仍然被装载在堆栈上,因此不会调用它的componentWillUnmount 当从B返回到A时,会调用componentWillUnmount of B,但componentDidMount of A不是,因为A始终保持挂载状态 我建议您阅读文档中的导航生命周期。这是链接- 谢谢你的回答 我的问题是关于TabNavigator和DrawerNavigator的,而不是关于StackNavigator的,它是非常不同的。 我已经知道,当您从A切换到B以及返回A时,组件B已安装和卸载。 我正在使用一些StackNavigator,我没有问题 事实上,你不能总是在复杂的应用程序中使用StackNavigator 因此: 我想知道,当我们从一个屏幕切换到另一个屏幕时,是否需要使用标签导航器或抽屉导航器卸载组件,或者组成我的导航器的所有屏幕都已安装是否正常 示例 选项卡导航器 ---斯塔克1 ---斯塔克2 ---斯塔克3 在这里,您在stack1上输入应用程序,切换到stack2,然后切换到stack3。 使用TabNavigator default config,将安装所有堆栈(这里是堆栈中的组件) 这是性能问题吗?? 例如,当我从stack1切换到stack2时,是否必须卸载组件
---- stack1
---- stack1page1
---- stack1page2
---- stack1page3
---- stack2
---- stack2page1
---- stack2page2
---- stack2page3
---- stack3
---- stack3page1
---- stack4
---- stack4page1
---- stack4page2