Как поднять родную ошибку в приложении React-Native? - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь протестировать глобальный обработчик на наличие собственных ошибок (для обработки ошибок я использую response-native-exception-handler). Автор этой библиотеки также создал для этой цели библиотеку для запуска собственной ошибки: rn-test-exception-handler.

Проблема в том, что эта библиотека не предоставляет ничего для JS, так как React-Native 0.60 ( поскольку он не поддерживает автоматическое связывание).

Есть ли способ добавить эту библиотеку в мой проект или каким-либо другим способом вызвать встроенную ошибку, чтобы я мог протестировать глобальный обработчик?

1 Ответ

0 голосов
/ 07 августа 2020

Чтобы вызвать собственную ошибку, вы можете изменить собственные модули ваших зависимостей. Например, я добавил ошибку в response-native-gesture-handler file RNGestureHandler.m :

- (void)handleGesture:(UIGestureRecognizer *)recognizer
{
    RNGestureHandlerEventExtraData *eventData = [self eventExtraData:recognizer];
    [NSException raise:@"TEST EXCEPTION" format:@"THIS IS A TEST EXCEPTION"];
    [self sendEventsInState:self.state forViewWithTag:recognizer.view.reactTag withExtraData:eventData];
}

Чтобы вызвать ошибку, вы должны использовать триггер жест.

response-native-exception-handler успешно отлавливает такие ошибки с помощью setNativeExceptionHandler (хотя он не обнаружил встроенную ошибку, которую я пытался вставить в модуль буфера обмена, подробнее об этом здесь: https://github.com/a7ul/react-native-exception-handler/issues/135)

...