Я играю с React in node, используя jsdom. Когда я пытаюсь отобразить компонент, содержащий другой компонент с содержимым, он не сможет отобразить содержимое подкомпонентов. Например,React.render делает пустой подкомпонент в jsdom
var React = require('react');
var SubComponent = React.createClass({
render: function() {
return React.createElement("div");
}
});
var TestComponent = React.createClass({
render: function() {
/* JSX would look like this:
<div>
<p>regular tag</p>
<SubComponent>sub component</SubComponent>
</div>
*/
return React.createElement(
"div", {},
React.createElement("p", {}, "regular tag"),
React.createElement(SubComponent, {}, "sub component")
);
}
});
global.document = require('jsdom').jsdom('<!doctype html><html><body></body></html>');
global.window = document.parentWindow;
global.navigator = window.navigator;
React.render (React.createElement (TestComponent), global.document.body) console.log (document.body.innerHTML);
Это будет регистрировать следующую разметку консоли:
<div data-reactid=".zf2pciql8g">
<p data-reactid=".zf2pciql8g.0">regular tag</p>
<div data-reactid=".zf2pciql8g.1"></div>
</div>
Обратите внимание на <p>
тег имеет свое содержание, но <SubComponent>
тега был изменен в пустые дела.
Почему у div нет «подкомпонента» в качестве внутреннего содержимого? Я просто изучаю Реакт, так что я делаю что-то явно немое здесь?
А, это имеет смысл. Отлично работает сейчас, спасибо! –