fullstack-development / react-redux-starter-kit

Modular starter kit for React+Redux+React Router projects.

Home Page:https://demo.fullstack-development.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Выпилить shared/helpers/redux/isSuccessedByState

sk1e opened this issue · comments

Реагировать на такие события можно в саге. В саге это декларативней и не приведёт к дополнительному рендеру, если реакция - диспатч (что как правило). Также не будет дополнительного импорта.

Очень часто тебе нужно реагировать на изменение комуникейшна в реакт компонентах, т.е. только тогда, когда компонента прямо сейчас отрисована на странице, в сагах ты такое не отследишь, ну или отследишь, но нужно тогда в редакс стейт добавлять какие-то дополнительные флаги, типа "такая-то страница отрисована, такой-то попап открыт/закрыт".

Простой пример, попап, в котором ты что-то сабмитишь. Если на проекте не настроена система нотификаций, то тебе нужно в реакт компоненте слушать прогресс выполнения запроса и на испех или ошибку отреагировать в отрисованном попапе

Очень часто тебе нужно реагировать на изменение комуникейшна в реакт компонентах, т.е. только тогда, когда компонента прямо сейчас отрисована на странице, в сагах ты такое не отследишь, ну или отследишь, но нужно тогда в редакс стейт добавлять какие-то дополнительные флаги, типа "такая-то страница отрисована, такой-то попап открыт/закрыт".

Это к стейту приложение относится, с чего бы этим флагам не быть в редакс стейте?

по мне так лишний бойлерплейт, такие вещи можно и в локальном стейте делать. Конечно если ты хочешь иметь возможность открыть попап фичи находясь в другой фиче, тогда да, можно и в редакс сунуть.

Я пришёл к тому что весь стейт лучше держать в редаксе. Помимо управления извне мы можем:

  • обозревать этот стейт в redux devtools, что помогает для понимания частей приложения с которыми ты не ещё работал
  • отлаживать в том же redux devtools
  • не тратить время на перенос из локального в redux, когда появляется необходимость
  • разгружать компонент от стейт-логики

У нас ответственность разделена между разными слоями и есть слой, который отвечает за стейт. Зачем делать исключения и вносить неоднородность?