Глобальный обработчик ошибок для приложений React Native (android, ios)Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Глобальный обработчик ошибок для приложений React Native (android, ios)

Сообщение Anonymous »

Я пытаюсь создать глобальный обработчик для родного плагина реагирования или, по крайней мере, на уровне приложения, в TypeScript, чтобы перехватывать все необработанные исключения и регистрировать их. p>
Я использую 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');
}}
/>


);
};
Таким образом, в событии нажатия кнопки должно создаваться исключение при попытке проанализировать недопустимый JSON, а затем выводить на консоль ошибку журнала из ErrorBoundary, но оно никогда не вызывается.
Кроме того, согласно документации, ErrorBoundary не может обнаружить следующие ошибки:
  • Обработчики событий (подробнее)
  • Асинхронный код (например, обратные вызовы setTimeout или requestAnimationFrame)
  • Рендеринг на стороне сервера
  • Ошибки, возникающие в самой границе ошибки (скорее чем его дочерние элементы)
поэтому, даже если это работает для верхнего сценария, это не работает для всех ошибок.
Существует ли какой-либо пакет или решение для реализации глобального обработчика ошибок для приложений, реагирующих на реакцию, для работы с последней версией (версиями) React Native 0.73.x и выше?

Подробнее здесь: https://stackoverflow.com/questions/785 ... ndroid-ios
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»