Как управлять мутацией объекта (редактирование формы) с помощью Redux и React - PullRequest
0 голосов
/ 14 января 2019

Каков наилучший шаблон для управления рабочей копией (редактируемой формой) сущности с помощью Redux и React? Обычно я использую следующую архитектуру для управления формами:

           Redux
           ^    |
  Dispatch |    | Provides
  Actions  |    | list of entities
           |    V
  <EntitiesContainerComponent />
           ^    |
           |    |
  Identity |    | Maps to 
           |    V
    <Entitycomponent entity={e}
        doSave={(e) => this.handleSave(e)} />

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

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

Далее, компонент сущности копирует сущность идентичности во внутреннем состоянии во время монтирования. Действия формы изменяют внутреннее состояние компонента сущности (рабочей копии сущности). Логика проверки также проверяет рабочую копию. Наконец, компонент сущности вызовет функцию обратного вызова save с рабочей копией, которая в конечном итоге достигнет Redux через компонент контейнера.

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

...