Я использую React Native версии 0.74.x.
Я нашел пакет Reaction-native-Exception-Handler. Но последний раз это обновлялось 3 года назад и больше не поддерживается.
Я также нашел концепцию Границы ошибок, но похоже, что это решение не поддерживает работайте на меня.
Класс ErrorBoundary
Код: Выделить всё
import React, { Component, type ErrorInfo } from 'react';
import { Text } from 'react-native';
interface Props {
children: React.ReactNode;
}
interface State {
hasError: boolean;
}
class ErrorBoundary extends Component
{
constructor(props: Props) {
super(props);
this.state = { hasError: false };
}
public static getDerivedStateFromError(_: Error): State {
// Update state so the next render will show the fallback UI.
return { hasError: true };
}
componentDidCatch(error: Error, errorInfo: ErrorInfo): void {
console.error('ErrorBoundary caught an error: ', error, errorInfo);
this.setState({ hasError: true });
}
render() {
if (this.state.hasError) {
return Something went wrong.;
}
return this.props.children;
}
}
export default ErrorBoundary;
Код: Выделить всё
const ExceptionTrackingView = () => {
return (
{
JSON.parse('Invalid JSON String');
}}
/>
);
};
Кроме того, согласно документации, ErrorBoundary не может обнаружить следующие ошибки:
- Обработчики событий (подробнее)
- Асинхронный код (например, обратные вызовы setTimeout или requestAnimationFrame)
- Рендеринг на стороне сервера
- Ошибки, возникающие в самой границе ошибки (скорее чем его дочерние элементы)
Существует ли какой-либо пакет или решение для реализации глобального обработчика ошибок для приложений, реагирующих на реакцию, для работы с последней версией (версиями) React Native 0.73.x и выше?
Подробнее здесь: https://stackoverflow.com/questions/785 ... ndroid-ios