2017-02-06 3 views
0

есть правило в redux, состояние должно быть изменено только в редукторах. Кто-нибудь знает рекомендации по управлению состоянием в дочерних компонентах? я имею в виду, как реагировать на какое-либо событие в компоненте, которое не является «контейнером», если дочерний компонент может модифицировать свою внутреннюю модель @intput или он должен запускать только какое-то событие, которое затем «контейнер» должен преобразовать в действие, а изменение модели должно вернуться вернуться к этому компоненту через @input? или дочерний компонент могут изменить свою модель? скажем, у нас есть компонент datepicker. При выборе даты в функциях обработчика мы должны обновить this.date или нам нужно только инициировать событие dateChange и ждать, пока модель будет изменена контейнером? спасибоРедукция - состояние Angular2/ngrx в дочерних компонентах

ответ

-1

Существует хорошая концепция компонентов состояния и состояния без учета состояния в угловой экосистеме. Так это зависит, что проблемы вы пытаетесь достичь:

  • делает ваш компонент может получить исходные данные из вашего маршрута
  • делает компоненты имеют живое знание о текущем состоянии
  • этой информации действуют между другими компонентами государственной изменения
  • сколько внешних зависимости/коммуникация этого компонент имеет
  • имеют отслеживание состояния/ребенок без компонентов и т.д.
  • содержит Redux действие (ngrx/магазин или ng2re dux, например)

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

После этого вам необходимо нарисовать собственную картину, какой подход лучше всего подходит для вашей собственной архитектуры.

https://toddmotto.com/stateful-stateless-components

+0

спасибо за оповещение, пожалуйста, см. мой комментарий –

-1

поэтому мой пример выглядит следующим образом:

<plumb [nodes]='nodes$|async' [connections]='connections$|async' (connect)='onConnect($event)' (disconnect)='onDisconnect($event)')/> 

basicaly его управление графом рисовать диаграммы .. Я givint этого cmoponent как список параметров блоков/NDoes и список подключений и я я запускаю два события, когда пользователь соединяет элементы или disconets в графе. так что вопрос в том, что изменение списка «соединений» должно быть внутри компонента или когда пользовательский компонент подключения должен запускать событие и ждать с помощью стрелки чертежа до тех пор, пока хранилище ngrx не обработает его и вернуть новый список подключений :) Я не хочу, чтобы этот компонентный я хочу, чтобы это было многоразовым .. в соответствии со статьей, которую вы отправили, похоже, что ее лучше иметь компоненты stateles, поэтому он не должен изменять список подключений. спасибо

+0

Я думаю, что в вашем случае вам нужны оба компонента с состоянием, чтобы инкапсулировать поведение, специфичное для конкретных компонентов, и соответствующие данные для лучшего тестирования модулей в будущем и лучшей защиты регрессии и событий пожара вне управления коммуникациями компонентов , Это имеет смысл в вашем случае? – VadimB

+0

Да, это то, о чем я думал. Я не хочу мутировать сборник «соединений», переданных компоненту beacues, его редукция no no .. поэтому я думал о создании копии внутри этого компонента и оперировать этим списком и информировать внешний мир что список исходных соединений необходимо изменить .. howeve havent видел такой шаблон в любом коде до сих пор :) –

Смежные вопросы