Доступ к состоянию подкомпонента om.next
Я просто поднял om.next и столкнулся с ситуацией, когда у меня есть некоторые входы формы, реализованные в виде компонентов, которые поддерживают локальное состояние, например, состояние проверки, фактическое значение ввода и т. Д. - это состояние обновляется и доступно с помощью om.next/update-state!
а также om.next/get-state
, Проблема с этим, кажется, заключается в том, что когда я обертываю входные данные в форме в родительском компоненте, я не уверен, как получить состояние, сохраняемое входными компонентами. Что лучше передать родительский компонент как свойство компонента ввода? Как насчет ситуаций, когда нет родительского компонента?
1 ответ
Мне кажется, что есть 2 варианта использования, которые вы хотите реализовать:
- передать родительский компонент в качестве аргумента, как вы сказали
- иметь запись в глобальном состоянии приложения, которая представляет редактируемую текущую форму, которую вы можете обновить с помощью
transact!
независимо от компонента, соответствующего вводу. Таким образом, каждый компонент, который представляет входные данные, знает, где в состоянии приложения обновлять себя (какой ключ в текущей форме) - вероятно, захвачено кратко в одной функции мутации.
1), вероятно, проще всего реализовать, учитывая код, который у вас есть в настоящее время, но я всегда хотел бы перейти к 2), поскольку он не отклоняется от мнения "единого источника правды", которое рекомендует Om Next (и пытается применить). Данные формы на самом деле являются бизнес-данными, которые нежелательно разбрасывать по компонентам. Тестируемость - это только одно преимущество, которое я сразу вижу из такого подхода.