我在选项卡更改时重新渲染我的组件时遇到问题,显然添加lazyLoad: true
到导航选项解决了它。
但我不太明白它是如何工作的......尤其是在那之前,我遇到了另一个问题,添加lazy: true
选项解决了它。
所以我的问题是,两者之间有什么区别以及它们在react导航中的工作方式:)
我在选项卡更改时重新渲染我的组件时遇到问题,显然添加lazyLoad: true
到导航选项解决了它。
但我不太明白它是如何工作的......尤其是在那之前,我遇到了另一个问题,添加lazy: true
选项解决了它。
所以我的问题是,两者之间有什么区别以及它们在react导航中的工作方式:)
有两个主要版本react navigation
,
react-navigation-v1和react-navigation-v2
react-navigation
例如TabNavigator
,当加载导航器时,它会尝试渲染该导航器内的所有屏幕。
For react-navigation-v1
:当TabNavigator
它安装在屏幕上时,它会尝试将其内部配置的所有屏幕/组件一次推送到 UI。所以为了避免这种行为,在TabNavigator
选项中,lazyLoad: true
或者lazy: true
被传递,所以可以根据需要渲染屏幕/组件。
直到react-navigation 1.0.0-beta9
,lazyLoad: true
被使用,但因为它现在稳定,所以lazy: true
被使用。
对于react-navigation-v2
:TabNavigator
并且createTabNavigator
已弃用,您将始终收到黄屏错误,因此请使用createBottomTabNavigator
和/或createMaterialTopTabNavigator
. 该lazy
选项与TabNavigator
and 一起使用createTabNavigator
,createBottomTabNavigator
具有lazyLoading
内置选项,但createMaterialTopTabNavigator
似乎有问题,该lazy
选项不起作用。
我希望这回答了你的问题。