反应导航 5 props.navigation.replace("component");与 navigation.navigate() 的工作方式相同(后退按钮仍显示在 header 中)
React Navigation 5 props.navigation.replace("component"); works the same as navigation.navigate() (Back buttons still shown in header)
我正在尝试使用 react-navigation 5 替换功能,但它没有按预期工作。
假设有三个组成部分:
set-domain.js
,
auth.js
,
some-func.js
我正在尝试的是:
在 set-domain.js
我设置域并执行:
props.navigation.navigate('Auth');
this navigates to auth.js
:
在 Auth
我登录并执行:
props.navigation.replace('SomeFunc');
this should replace to some-func.js
问题是它不会替换,但会导航(我在 header 左侧有后退按钮,我可以使用后退按钮导航回来)。 HOWEVER,如果我在 set-domain.js
、auth.js
之间使用替换,那么它适用于所有屏幕。
我做错了什么?感觉,我不明白 replace 实际上是如何工作的,但我在文档中找不到更多详细信息。
谢谢!
您正在从 set-domain
导航到 auth
,所以您的堆栈是 [set-domain, auth]
。
当您使用替换时,您所做的只是将 auth
替换为 some-func
,因此堆栈变为 [set-domain, some-func]
,这就是后退按钮仍然显示和导航的原因返回将带你到 set-domain
.
如果您使用导航而不是替换堆栈将变为 [set-domain, auth, some-func]
。
我正在尝试使用 react-navigation 5 替换功能,但它没有按预期工作。
假设有三个组成部分:
set-domain.js
,auth.js
,some-func.js
我正在尝试的是:
在 set-domain.js
我设置域并执行:
props.navigation.navigate('Auth');
this navigates toauth.js
:
在 Auth
我登录并执行:
props.navigation.replace('SomeFunc');
this should replace tosome-func.js
问题是它不会替换,但会导航(我在 header 左侧有后退按钮,我可以使用后退按钮导航回来)。 HOWEVER,如果我在 set-domain.js
、auth.js
之间使用替换,那么它适用于所有屏幕。
我做错了什么?感觉,我不明白 replace 实际上是如何工作的,但我在文档中找不到更多详细信息。
谢谢!
您正在从 set-domain
导航到 auth
,所以您的堆栈是 [set-domain, auth]
。
当您使用替换时,您所做的只是将 auth
替换为 some-func
,因此堆栈变为 [set-domain, some-func]
,这就是后退按钮仍然显示和导航的原因返回将带你到 set-domain
.
如果您使用导航而不是替换堆栈将变为 [set-domain, auth, some-func]
。