【发布时间】:2014-11-28 03:00:12
【问题描述】:
尝试使用 ReactJS 和节点进行服务器端渲染时,我不断收到以下错误。
React attempted to use reuse markup in a container but the checksum was invalid.
我看到answer 在服务器和客户端上传递相同的道具解决了这个问题。在我的示例中,我没有任何道具,所以我不确定答案是否适用于我的问题。
您可以在我的github 帐户上查看我的完整示例。
我将包含下面的重要代码。非常感谢任何见解。
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;
}
服务器
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);
【问题讨论】:
标签: reactjs