You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中navigation.goBack不生效,点击返回停留在Todos页面如何解决

问题原因

你在嵌套的堆栈导航器外层额外添加了一层独立的NavigationContainer,违反了React Navigation的使用规范:

  • 整个React Native应用仅需要保留**最外层一个根NavigationContainer**即可,所有嵌套的子导航器(Tab导航、Stack导航等)都不需要重复包裹NavigationContainer
  • 你给子导航的NavigationContainer设置了independent={true},进一步隔离了子导航栈和全局导航的上下文,导致goBack无法正确识别上一级路由,出现点击返回无响应的问题
修复方案

直接删除DailyTab组件里多余的NavigationContainer包裹即可,修改后的代码如下:

const DailyTab = () => {
  // 移除外层的NavigationContainer,仅保留Stack.Navigator逻辑
  return (
    <Stack.Navigator initialRouteName="Daily">
      <Stack.Screen
        name="Daily"
        component={Daily}
        options={{headerShown: false}}
      />
      <Stack.Screen
        name="Todos"
        component={Todos}
        options={{headerShown: false}}
      />
    </Stack.Navigator>
  );
};

如果需要临时验证效果,也可以把Todos组件里的navigation.goBack()替换为navigation.navigate('Daily'),但本质还是要删除多余的导航容器才能彻底解决问题。

内容的提问来源于stack exchange,提问作者Pro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:45:07