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

React Native Android端跳转页面无报错崩溃,关联Navigation v6、GraphQL Cache

可行解决建议

  • 优先替换props传递navigation的方式:动态渲染的组件统一使用useNavigation()钩子获取导航实例,不要通过props逐层传递。Navigation v6对上下文绑定的校验比旧版更严格,Android端对上下文丢失的容错性远低于iOS,props传递容易在动态组件重渲染时出现引用失效直接触发原生崩溃。
  • 检查导航跳转传递的参数:v6默认开启参数序列化校验,禁止传递函数、Promise、循环引用对象等不可序列化内容。iOS对非法参数仅会输出警告,Android端会直接触发崩溃且JS层无日志输出。可临时添加如下配置关闭校验快速验证:
// 单页面关闭参数校验配置
<Stack.Screen
  name="YourScreen"
  component={YourComponent}
  options={{
    unmountOnBlur: false,
  }}
  getId={({ params }) => params?.id}
/>
// 全局关闭相关渲染优化校验
import { enableFreeze } from 'react-native-screens';
enableFreeze(false);
  • 给所有动态触发的导航操作加安全校验:调用跳转前先判断当前组件是否挂载、navigation实例是否有效,示例代码:
const navigation = useNavigation();
const isMounted = useRef(true);

useEffect(() => {
  return () => {
    isMounted.current = false;
  }
}, [])

const handleNavigate = () => {
  if(isMounted.current && navigation?.isReady()){
    navigation.navigate('TargetPage', { 
      // 仅传递可序列化的基础类型、普通对象参数
    })
  }
}
  • 检查Android端原生配置:确认AndroidManifest.xml中主Activity的启动模式是否为standard,Navigation v6不支持特殊启动模式配置,否则会出现页面跳转时上下文匹配失败崩溃。

错误日志截图

错误截图1
错误截图2
错误截图3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:48:02