Пожалуйста, помогите мне разобраться в моей проблеме.Реагирование на серверной стороне ReactJS
У меня есть следующие на сервере -side (Node.js):
var React = require('react');
var ReactDOMServer = require('react-dom/server');
var TestComponent = React.createClass({
render : function() {
return <div>test</div>
}
});
// express router callback..
function(req, res, next) {
res.send(ReactDOMServer.renderToString(TestComponent));
};
Пример ответа:
<div data-reactid=".2e2hyaaz0n4" data-react-сhecksum="1124798100">test</div>
А на клиента -side :
ReactDOM.render(React.createElement(template), document.getElementById('container'));
Я имею следующую ошибку в консоли браузера:
Uncaught Invariant Violation: Invalid tag: <div data-reactid=".2e2hyaaz0n4" data-react-checksum="1124798100">test</div>
Любая помощь будет оценен по достоинству!
Проверьте, что https: // facebook.github.io/react/docs/top-level-api.html#reactdomserver.rendertostring Похоже, это должно быть возможно. –
@OlegMeleshko Можете ли вы уточнить? Я не уверен, что вы подразумеваете под своим комментарием. –
Если вы вызываете ReactDOM.render() на узле, у которого уже есть эта обработанная сервером разметка, React сохранит ее и только присоединяет обработчики событий, что позволит вам иметь очень эффективный опыт первой загрузки. –