【问题标题】:React navigation unable to navigate to just pervious screen after navigating multiple screens导航多个屏幕后反应导航无法导航到上一个屏幕
【发布时间】:2018-12-30 17:25:48
【问题描述】:

场景:

  1. 导航:屏幕“StoreCategories” --> 屏幕“QRScanner”
  2. 在屏幕 'QRScanner' 重定向到屏幕 'StoreCategories' 时的后按完美运行
  3. 导航:屏幕“QRScanner”-->屏幕“选项”和
  4. 导航:屏幕“选项”-->再次屏幕“QRScanner”
  5. 在屏幕“QRScanner”上单击返回,再次重定向到屏幕“StoreCategories”

不重定向到之前的屏幕“选项”。

一切都发生在 react-navigation 中的默认返回功能,我没有使用任何自定义功能进行返回功能。

如何解决它并从重定向发生时导航到上一个而不是 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
}
);

【问题讨论】:

  • 你能显示你用来导航到另一个屏幕的代码吗?是导航功能吗?
  • @rabbit87 我正在使用 this.props.navigation.navigate("Main")

标签: react-native react-navigation


【解决方案1】:

如果您想导航到后屏,可以使用以下代码:

this.props.navigation.goBack()

通过导航到Main,它将重定向到Main的初始路线,它似乎是A

【讨论】:

    【解决方案2】:

    当前 React-Navigation 的导航功能的工作方式与以前的工作方式有些不同。目前,如果您导航到已经在屏幕堆栈中的屏幕,系统将返回到该屏幕(删除当前屏幕和该屏幕之间的其他屏幕将被删除),而不是简单地将新屏幕添加到堆栈中。

    如果您想使用旧系统样式,可以使用 push 代替 navigate。这只会简单地添加到堆栈中,而不是返回到最后一个(如果存在于堆栈中)。

    所以而不是使用

    const {navigate} = navigation;
    navigate(nextScreen, params);
    

    你使用

    const {push} = navigation;
    push(nextScreen, params);
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    相关资源
    最近更新 更多