我的导航结构如下所示:
TabNavigator
|
|- StackNavigator
| |
| |- ListA
| |
| |- ShowA
|
|- StackNavigator
| |
| |- ListB
| |
| |- ShowB
正如您所料, ListA
会显示资源列表(类型A
)。按下一个设置状态并导航到ShowA
,您将在其中查看有关该特定资源的详细信息。
ListB
显示资源列表(类型B
),ShowB
也显示资源列表,但资源类型为{{ 1}}。按下其中一个资源时,您应该导航到A
。
如果在ShowA
上,我按下并导航到ListA
,这完全有效。
如果在ShowA
上,我按下并导航到ShowB
,这也会按预期工作。
但是,如果我首先转到ShowA
,请导航至ListA
,然后(不在ShowA
上按下'返回')使用TabNavigator并转到{ {1}},然后按ShowA
,按下资源会打开ListB
但是它的另一个屏幕实例位于堆栈顶部。因此,当我按下“返回”时,不会像我预期的那样转到ShowB
,而是转到之前打开的ShowA
。
如果格式或说明不充分,我很抱歉。如果有人可以提供帮助,或者有人需要更多信息,请告诉我,我会尽我所能。
答案 0 :(得分:0)
您应该在不同的屏幕名称下使用相同的组件注册两个屏幕。结构看起来应该是这样的:
Tab:
Stack
"Tab1List"
"Tab1Show"
Stack
"Tab2List"
"Tab2Show"