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

React Native Error Boundary中实现点击返回按钮回到上一页面

React Native Error Boundary fallback UI 导航返回失效解决方法

你的ErrorFallback组件里navigation为undefined,核心原因是Error Boundary的fallback组件不会自动接收navigation props,当前通过props获取的方式行不通,以下是两种解决办法:

方法一:直接在组件内使用useNavigation钩子

你已经导入了useNavigation但未实际调用,直接在组件内部获取导航实例即可:

修改后的ErrorFallback代码:

import {
    Text,
    View,
    TouchableOpacity,
} from 'react-native';
import React from 'react';
import GoBack from '../../../../../../libs/common/src/lib/Assets/Images/Findings/chevron-left.svg';
import { useNavigation } from '@react-navigation/native';

const ErrorFallback = ({ error, resetError }) => {
    // 直接调用useNavigation获取导航实例
    const navigation = useNavigation();
    
    console.log('-----', navigation)
    return (
        <View style={{ margin: 20, marginTop: 20 }}>
            <TouchableOpacity onPress={() => navigation.goBack()}>
                <GoBack height={30} width={20} style={{ backgroundColor: "black", color: 'black' }} />
            </TouchableOpacity>
            <View style={{ margin: 0 }}>
                <Text style={{ fontSize: 20, marginTop: 10, color: 'red' }}>Error occurred:</Text>
                <Text style={{ fontSize: 18 }}>{error.message}</Text>
            </View>
        </View>
    );
};

export default ErrorFallback;

方法二:从Error Boundary组件传递navigation props

如果你的Error Boundary组件本身处于导航栈内,可以在渲染fallback时手动把navigation传进去:

假设你的Error Boundary组件代码如下,修改renderFallback部分:

class MyErrorBoundary extends React.Component {
  state = { hasError: false, error: null };

  static getDerivedStateFromError(error) {
    return { hasError: true, error };
  }

  render() {
    if (this.state.hasError) {
      // 将当前组件的navigation props传递给ErrorFallback
      return <ErrorFallback 
               error={this.state.error} 
               resetError={() => this.setState({ hasError: false })}
               navigation={this.props.navigation} 
             />;
    }
    return this.props.children;
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 01:42:48