Проблема связанная с логикой в React/Redux приложении
React + Redux разрабы, есть вопрос. Сейчас сижу на очень большом проекте. Нужно сверстать страницу. На этой странице есть такой компонент(форма на картинке) и при нажатии на кнопку «добавить»(она лежит вне компонента), появляется еще одна такая же форма. И после того как пользователь заполнил их, он нажимает на другую кнопку и куда-то отправяет данные. Проблема в том, что когда я добавляю новую форму, мне приходится диспатчить экшн и обновлять состояние поля в хранилище, но по концепции иммутабельности редакса, мне приходится весь store перезаписывать, а так как проект очень большой - это сликшом объемные операции. Как реализовать логику в таком случае? В кратце: нужно сделать так, чтоб стор обновлялся только после отправки всех заполненых форм, а не когда форма добавляется
Ответы (1 шт):
Проблема в том, что когда я добавляю новую форму, мне приходится диспатчить экшн и обновлять состояние поля в хранилище.
Почему приходится? В проекте есть компоненты, которые зависят от этого поля?
Спрашиваю потому, что ваша задача "чтобы стор обновлялся только после отправки всех заполненых форм" как бы подразумевает, что от начала взаимодействия со страницей и до возвращения респонса с сервера, эти формы на весь остальной проект не влияют. А значит надо использовать локальный реактовский стейт.
С другой стороны, у больших проектов, как правило, есть достаточно строго прописанные best practices. Стоит уточнить, как именно надо хэндлить такие случаи, чтобы имплементация компонента не отличался от прочих.
Я придерживаюсь правила: стор - репрезентация модели и общих элементов UI, а локальный стейт - держу локально. Упрощает разработку и дебаггинг.
