react-redux-starter-kit icon indicating copy to clipboard operation
react-redux-starter-kit copied to clipboard

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

Open sk1e opened this issue 6 years ago • 4 comments

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

sk1e avatar Oct 16 '19 04:10 sk1e

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

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

in19farkt avatar Oct 16 '19 07:10 in19farkt

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

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

sk1e avatar Oct 16 '19 07:10 sk1e

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

in19farkt avatar Oct 16 '19 07:10 in19farkt

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

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

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

sk1e avatar Oct 18 '19 03:10 sk1e