React-Native Stack 导航器返回到具有相同初始路由名称的上一个屏幕

标签 react-native react-navigation

我正在开发一个 React Native 应用程序,并使用 React 导航的 stacknavigator,这是我的场景:

  • 我有一个组件A作为堆栈导航器,其中包含屏幕B(和其他)。
  • 点击 A 中的按钮导航至 B
  • 点击 B 中的按钮导航到 B(这次包含新数据)
  • 点击第二个 B 的默认后退按钮导航到 A。这是我的问题,因为我想返回到第一个 B 检查我的 stacknavigator 配置,如果我错过了额外的配置,请纠正我,谢谢。
<AppStack.Navigator
    initialRouteName="HOME"
    screenOptions={stackStyle}>
    <AppStack.Screen
        name="HOME"
        component={A}
    />
    <AppStack.Screen
        name="B"
        component={B}
    />
....

B 内:

const {navigation} = this.props;
navigation.navigate('B', {new data for second B});

编辑:忘记提及第一个 B 从 WebView 触发第二个 B

最佳答案

在我看来,您应该处理要重新渲染的组件的状态。无论如何,如果您只需要导航到同一页面并保持返回,您可以替换:

navigation.navigate('B', { ... })

作者:

navigation.push('B', { ... })

当您使用push时,您会创建一条新路线,因此当您从这条新路线返回时,它将导航到上一条路线。 navigate 将尝试转到现有路线,因此在您的情况下:路线 B ​​实际上已经存在。

关于React-Native Stack 导航器返回到具有相同初始路由名称的上一个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65531517/

相关文章:

javascript - 在 React Native 中创建 'Div' 和 'Span' 组件

react-native - 如何为第三方包做模块名称别名

reactjs - 如何使用 React Navigation 5 在 Action Creator 中导航到屏幕

reactjs - 你如何导航到另一个不接收 react 导航 Prop 的组件?

javascript - 如何在 typescript 项目中导入js文件?

ios - react-native-fbsdk 不返回电子邮件

react-native - 导航到另一个屏幕时关闭模式

javascript - 让堆栈导航器始终呈现initialRoute

function - 打开 native 屏幕时调用函数

javascript - "autoCapitalize"不是有效的样式属性 - React Native 中的错误