我有一个这样的导航配置。
StackNavigator
-> stack_screen1
-> stack_screen2
-> TabScreens
TabScreens
-> tab_screen1
-> StackNavigator
-> screen x
-> screen1 // common component
-> screen2 // common component
-> tab_screen2
-> StackNavigator
-> screen y
-> screen1
-> screen2
-> tab_screen3
-> StackNavigator
-> screen z
-> screen1
-> screen2
Run Code Online (Sandbox Code Playgroud)
这里 screen1 和 screen2 是可以从任何选项卡屏幕调用的通用组件。例如,我可以从任何选项卡屏幕显示产品显示页面。问题是如果从 say 调用 screen1tab_screen1并且我将选项卡切换到 say tab_screen2,然后调用从tab_screen2先前安装的 screen1 from访问 screen1tab_screen1并且选项卡也切换到原始选项卡。
一种解决方法是为类似的组件使用不同的密钥。但这是很多工作,因为我的应用程序中有许多共享组件,我正在将导航实验替换为反应导航。还有其他解决方案吗?