尝试使用ReactJS和节点进行服务器端渲染时,我一直收到以下错误.
React attempted to use reuse markup in a container but the checksum was invalid.
Run Code Online (Sandbox Code Playgroud)
我已经看到一个答案,在服务器和客户端传递相同的道具解决了这个问题.在我的例子中,我没有任何道具,所以我不确定答案是否适用于我的问题.
您可以在我的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;
}
Run Code Online (Sandbox Code Playgroud)
服务器
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);
Run Code Online (Sandbox Code Playgroud)
Mic*_*ley 13
更改
React.renderComponent(<index/>, document.documentElement);
Run Code Online (Sandbox Code Playgroud)
至
React.renderComponent(<index/>, document);
Run Code Online (Sandbox Code Playgroud)
并且通知消失了.

| 归档时间: |
|
| 查看次数: |
5082 次 |
| 最近记录: |