【问题标题】:React Navigation(version 4.x): Transition to the same screenReact Navigation(版本 4.x):转换到同一个屏幕
【发布时间】:2020-08-08 00:18:42
【问题描述】:

我正在使用createStackNavigator。我有三个屏幕:A、B 和 C

在我的转换过程中,屏幕 B 被两次使用。我使用这个符号:

B(1):我们第一次通过一些参数过渡到屏幕B

B(2):我们第二次用不同的参数转移到屏幕B

考虑这种转变:

A --> B(1) --> C --> B(2)

当前行为

当我从屏幕A 转换到B(1)B(1)C 时,每次新屏幕出现时都会出现从右到左的动画。但是当我从C 过渡到B(2) 时,新的屏幕会出现从左到右。 (第一期)

当我在B(2) 并使用navigation.goBack() 时,我看到A(但我当然想看到C) (第 2 期)

预期行为

当我从C 转换到B(2) 时,新屏幕必须从从右到左出现(与之前的转换一样)

当我在B(2) 并使用navigation.goBack() 时,我必须看到C

System:
    OS: macOS 10.15.3
    CPU: (4) x64 Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
    Memory: 246.99 MB / 8.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 12.13.1 - ~/.nvm/versions/node/v12.13.1/bin/node
    npm: 6.12.1 - ~/.nvm/versions/node/v12.13.1/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
    Android SDK:
      API Levels: 28, 29
      Build Tools: 28.0.3, 29.0.2
      System Images: android-28 | Google APIs Intel x86 Atom, android-29 | Google APIs Intel x86 Atom
  IDEs:
    Android Studio: 3.5 AI-191.8026.42.35.5977832
    Xcode: 11.3.1/11C504 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.9.0 => 16.9.0
    react-native: https://github.com/expo/react-native/archive/sdk-36.0.1.tar.gz => 0.61.4
    "react-navigation": "^4.3.7",
    "react-navigation-stack": "^1.10.3",

【问题讨论】:

  • 请添加您的导航代码。

标签: reactjs react-native navigation react-navigation react-navigation-stack


【解决方案1】:

要修复“当我从 C 转换到 B(2) 时,新屏幕必须从右到左出现(与之前的转换一样)”在屏幕 C 中使用此代码进行导航:

// this pushes B into the stack insted of navigating to B
() => navigation.push('B')

这个“当我在 B(2) 上并使用 navigation.goBack() 时,我必须看到 C”将已经修复,因为使用 push insted 的 navigation 堆栈顺序是正确的。 所以你的堆栈预览屏幕将是 C。

【讨论】:

    猜你喜欢
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多