169 похожих чатов

Всем привет Вчера спрашивал, где лучше отлавливать ошибки 1) Еррро

боундари
2) В редакс
3) ...
Мне ответили, что в редакс
но я не могу найти информации почему именно в редакс лучше
как на счёт производительности и тд
Можете поделится ссылкой или несколько комментариев почему так?

13 ответов

27 просмотров

лучше ошибки не кидать что бы их не отлавливать

Taras- Автор вопроса

ну АПИ все-таки думает о другом те же 401 должны быть

ловить на слое апи такое и преобразовывать к типу с 2 мя возможными состояниями типо "maybe" или "either" google it

Taras- Автор вопроса

ну а все же по существу где лучше их отлавливать ?

ближе к месту где возникают, на слое апи

Taras- Автор вопроса

то есть на фронте вообще не нужно? )

нужно, на слое апи, говорю же)

у тебя есть модуль, класс, функция типо api.get('...')

Ну на 401 я делал специальную redux-sagа, которую вызывал из других redux-saga и в которую передавал конфигурацию запроса (AxiosRequestConfig), validationShema (на yup) проверяющую соответсвует ли данные полученные от сервера тому что мы от него ожидаем. ВНутри этой saga выполнялась проверка на 401 и предпринимались действия в зависимости от логики приложения: например обнуление isAuthenticated, дополнительные запросы для обновление токенов ит.д. В общем все что обычно делают внутри axios Interceptor, а также осуществлялась проверка на валидность ответа от сервера. Преимуществом такого поддхода по сравнению с axios interceptor являеться то что логиrа приложения не выходит за пределы redux-saga/ Если ошибка не касалась тех моментов которые подлежали обработке, внутри saga request executor, то она передавалась на верх в сагу из который был сделан вызов saga request executor. Используя данный подход удалось избежать значительного дублирования кода, при работе с запросами к серверу.

Также это можно сделать на санках, но я их не люблю)))

Taras- Автор вопроса

понял, то есть писать типа такого не нужно?

Ну лично я action фактически использую как сеттеры, которые устанавливают какое либо значение в стэйте соответсвующего редьюсера. А всю логику предпочитаю делать в saga в совокупности с redux-toolkit получается очень вкусно. А вы похоже используете классический редакс, вот его лучше таки не использовать. СЛишком много бойлерплэйта и мы за него не получаем никаких преимуществ.

Taras- Автор вопроса

спасибо за развернутый ответ!)

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта