В настоящее время мы тестируем нашу обработку ошибок в нашем приложении React / Redux.(Я уже читал https://github.com/reduxjs/redux/issues/1960). В React мы реализовали ErrorBoundaries , и это работает довольно хорошо: больше нет пустых страниц для необработанных исключений.
Нет, мы не пытались выдавать ошибки в редукторах имы видим, как они вошли в консоль с нетронутым состоянием редукции.
Редукторы ДОЛЖНЫ БЫТЬ чистыми!
Я определенно могу это поддержать. Функция должна быть "легкой"без побочных эффектов и хорошо протестировано. Дело в том, что разработчик редуктора может делать ложные предположения (например, о том, какое свойство в состоянии редукса может быть неопределенным). В результате получается
[Error] Unhandled Promise Rejection: TypeError: undefined is not an object (evaluating 'someVariableWithCanBeNullOrUndefined.someFunction')
Можно утверждать,: по крайней мере, нет белой страницы. Но состояние приложения теперь немного неловкое, так как все действия отправляются и выполняются, но не корректно сокращаются. Такие ошибки легко можно отслеживать. Есть ли способ справиться с этим во время выполнения программы?ошибки? Может быть, даже представить их в React's ErrorBoundary?
Пример ошибочной функции редуктора, когдаch результаты ТОЛЬКО в записи журнала:
reduceSomeState(state = new SomeState(), action: SomeAction) {
throw new Error('some runtime error: e.g. a value in the state is undefined and accessed here');
}