场景:
不重定向到其先前的屏幕“选项”。
一切都发生在反应导航中的默认后退功能上,我没有使用任何自定义功能进行后退功能。
我该如何解决它并导航到重定向发生之前的位置,而不是在react-navigation(V2)中已经缓存的屏幕上?
const StackNavigator = defaultRoute =>
createStackNavigator(
{
CustomerLogin: {
screen: CustomerLogins
},
MerchantLogin: {
screen: MerchantLogin
},
Profile: {
screen: Profile
},
OtpVerification: {
screen: OtpVerification
},
StoreOffers: {
screen: StoreOffers
},
StoreCategories: {
screen: StoreCategories
},
QRScanner: {
screen: QRScanner
},
MerchantHome: {
screen: MerchantHome
},
CustomerHome: {
screen: CustomerHome
},
ThankYou: {
screen: ThankYou
},
Detail: {
screen: Detail
},
Options: {
screen: Options
},
PayOnline: {
screen: PayOnline
},
PayCash: {
screen: PayCash
},
PayTm: {
screen: PayTm
},
Token: {
screen: Token
},
AddDiscount: {
screen: AddDiscount
},
CustomerHistory: {
screen: CustomerHistory
},
Webview: {
screen: Webview
},
Direction: {
screen: Direction
}
},
{
initialRouteName: defaultRoute
}
);
答案 0 :(得分:1)
当前React-Navigation的导航功能的工作方式与以前的工作方式有些不同。当前,如果您导航到屏幕堆栈中已经存在的屏幕,则系统将返回到该屏幕(删除当前屏幕之间的其他屏幕,该屏幕将被删除),而不是简单地将新屏幕添加到堆栈中。
如果要使用旧的系统样式,则可以使用推代替导航。这只会添加到堆栈中,而不是返回到最后一个(如果存在于堆栈中)。
所以不要使用
const {navigate} = navigation;
navigate(nextScreen, params);
您使用
const {push} = navigation;
push(nextScreen, params);
答案 1 :(得分:0)
如果要导航到后退屏幕,可以使用以下代码:
this.props.navigation.goBack()
通过导航到Main
,它将重定向到Main
的初始路由,并且似乎是A