2016-04-18 4 views
0

В настоящее время я использую плагин jquery, который создает элемент из необработанного HTML, например.Рендеринг компонента ReactJS из jQuery без ReactDOM.render

'<div data-react-class="ContactSelect" data-react-props="{&quot;selectedItem&quot;:null}"></div>' 

Однако, реакция не находит надлежащего обнаружения этого нового компонента. Есть ли событие или функция, которую я могу вызвать для реагирования на этот элемент?

ответ

0

Реагирует только те компоненты, которые он оказывает. Элементы, созданные в другом месте, не являются элементами Реагента. Если вам нужна дополнительная информация, прочитайте о виртуальной DOM или теневой DOM.

Если вы используете компонент (ы) ReactDOM.render в том же месте в дереве DOM, он проверит проверку diff с узлами (узлами) уже там, а затем отследит новые компоненты (компоненты), но вам нужно идти через Реакт.

+0

Но что же происходит с элементами, отображаемыми сервером? Разве они также не являются родными элементами, которые превращаются в реактивные компоненты? React фактически правильно отображает компонент, если я включаю это в исходный HTML и не загружаю динамически, что заставляет меня думать, что React делает то, что я хочу при загрузке страницы. – user3598395

+0

Что происходит: React генерирует строку (renderToString), которая генерируется только как разметка, а не виртуальный компонент DOM. Реакция на стороне клиента не знает об этих элементах. Когда компоненты на стороне клиента загружаются в одни и те же места в дереве узлов, он проверяет diff и инициализирует такие вещи, как обработчики событий, и т. Д. –

+0

Даже копирование и вставка этого результирующего html без прохождения реакции должным образом загружает компонент. Просто я не могу сделать это динамически после загрузки страницы. – user3598395