Reactjs 无效校验和

Reactjs 无效校验和,reactjs,Reactjs,在尝试使用ReactJS&node进行服务器端渲染时,我一直遇到以下错误 React attempted to use reuse markup in a container but the checksum was invalid. 我看到一个例子,在服务器和客户端上传递相同的道具可以解决这个问题。在我的例子中,我没有任何道具,所以我不确定答案是否适用于我的问题 您可以在我的帐户上查看我的完整示例 我在下面包含了重要的代码。非常感谢您的任何见解 JSX /** @jsx React.DOM

在尝试使用ReactJS&node进行服务器端渲染时,我一直遇到以下错误

React attempted to use reuse markup in a container but the checksum was invalid.
我看到一个例子,在服务器和客户端上传递相同的道具可以解决这个问题。在我的例子中,我没有任何道具,所以我不确定答案是否适用于我的问题

您可以在我的帐户上查看我的完整示例

我在下面包含了重要的代码。非常感谢您的任何见解

JSX

/** @jsx React.DOM */
var React = require('react');
var index = React.createClass({
    render: function() {
        return (
          <html>
          <head>
            <script src="bundle.js"></script>
          </head>
          <body>
            <div>
              hello
           </div>
          </body>
         </html>
     );
   }
});

if (typeof window !== "undefined") {
  React.renderComponent(<index/>, document.documentElement);
} else {
  module.exports = index;
}
改变

React.renderComponent(,document.documentElement);

React.renderComponent(,文档);
通知就不见了


有时候,事情很简单。非常感谢。你怎么这么快就知道答案了?我有预感,所以就胡思乱想事后来看,
document.documentElement
是HTML元素,而
document
包含它,并且React呈现为元素,因此如果你想呈现
HTML
标记,你必须呈现到它的容器中。反应很好。再次感谢你!如果要渲染到div中而不是渲染到
,则类似的答案也适用——您需要创建一个包装器div并渲染到该div中。
require('node-jsx').install();
var express = require('express'),
    app     = express(),
    React = require('react'),
    index = require('./index.jsx');

var render = function(req, res){
  var component = new index();
  var str = React.renderComponentToString(component);
  res.set('Content-Type', 'text/html');
  res.send(str);
  res.end();
}

app.get('/',render);
app.use(express.static(__dirname));

app.listen(8080);
React.renderComponent(<index/>, document.documentElement);
React.renderComponent(<index/>, document);