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

Программируем под IOS
Ответить Пред. темаСлед. тема
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 МБ.

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

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