如何导航到root之前的屏幕?



我试图实现一个取消按钮,将做一些像导航。poptopop()。问题是它会导航到我期望的屏幕之前的一个屏幕,因为那个屏幕是整个导航历史的根。能给它一个索引吗?

很难设置到一个特定的屏幕,因为屏幕上嵌套着制表符,如果只返回几个屏幕会简单得多。

e.g.
navigation.navigate(SCREEN_A);
...
navigation.navigate(SCREEN_B);
...
navigation.navigate(SCREEN_C);
...
navigation.navigate(SCREEN_D);

我试图去SCREEN_B没有明确设置屏幕到SCREEN_B。谢谢你的帮助!

您可以指定getId函数来识别屏幕:

https://reactnavigation.org/docs/screen/getid

<Stack.Screen
name={SCREEN_B}
component={ScreenB}
getId={({ params }) => params.someId}
/>

现在,如果你导航到navigation.navigate(SCREEN_B, { someId: 'someId' }),只有在someId参数相同的情况下,它才会导航到旧屏幕。

或者,如果您总是想要push一个新屏幕,您可以使用push:

navigation.push(SCREEN_B)

最新更新