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

React Navigation返回页面时header及底部标签消失、页面冻结如何解决?

React Navigation路由回退冻结问题解决方案

问题根因

该异常由导航依赖配置错误、版本兼容冲突导致,触发回退时页面渲染失效、交互无响应。

修复步骤

  • 修正react-native-gesture-handler导入顺序
    确保index.js中react-native-gesture-handler为第一个导入项,调整后代码如下:

    /**
     * @format
     */
    // 第一行导入
    import 'react-native-gesture-handler';
    import React from 'react';
    import {AppRegistry} from 'react-native';
    import App from './App';
    import {name as appName} from './app.json';
    
    AppRegistry.registerComponent(appName, () => App);
    
  • 添加Reanimated Babel插件配置
    2.x版本react-native-reanimated需要额外配置babel插件,否则会导致导航动画异常。在项目根目录babel.config.js中添加配置:

    module.exports = {
      presets: ['module:metro-react-native-babel-preset'],
      plugins: ['react-native-reanimated/plugin'],
    };
    

    配置完成后执行命令清空打包缓存重启服务:

    npx react-native start --reset-cache
    
  • 降级react-native-screens兼容版本
    当前使用的react-native-screens@3.9.0存在与@react-navigation/native-stack的兼容bug,会触发回退页面渲染异常。执行命令降级到稳定兼容版本:

    npm install react-native-screens@3.8.0
    # 若使用yarn则执行
    yarn add react-native-screens@3.8.0
    

    安卓端需要重新编译前清空原生构建缓存:

    cd android && ./gradlew clean && cd ..
    
  • 校验安卓原生配置
    检查android/app/src/main/AndroidManifest.xml中MainActivity的配置,确保已设置合理的窗口软键盘模式:

    <activity
      android:name=".MainActivity"
      android:windowSoftInputMode="adjustResize"
      <!-- 其余原有配置保持不变 -->
    >
    

    同时检查MainActivity.java中没有自定义的onBackPressed重写逻辑干扰导航回退事件。

所有配置修改完成后全量重新编译应用即可修复该问题。


内容的提问来源于stack exchange,提问作者Enver Köseler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:45:04