Реагировать Рефс в Реагент (или Ом)?
Иногда мне кажется полезным использовать ссылки React для изменения состояния DOM, например, для фокусировки поля ввода после рендеринга компонента. Реагент или Om реализуют это или нет, каков идиоматический способ сделать это в этих библиотеках?
РЕДАКТИРОВАТЬ (после обсуждения ниже).
Использование this.getDOMNode
в componentDidMount
не является общим решением этой проблемы. Он разрешает доступ к физическому элементу DOM только после монтирования компонента. Иногда требуется последовательный доступ к элементу после каждого вызова для рендеринга - как, например, для запуска событий. Способ сделать это через ссылки.
1 ответ
Я нашел ответ от автора Реагента здесь, если кто-то хочет посмотреть. Оказывается, ссылки не могут поддерживаться напрямую из-за того, как Reagent выполняет их рендеринг. Предлагаемое решение заключается в том, чтобы обернуть часть компонента, на которую необходимо сослаться в другом компоненте, и использовать компонент-did-mount в оболочке.