【发布时间】:2016-03-28 06:11:49
【问题描述】:
我一直在试图弄清楚如何在服务器(节点/快递)上呈现反应,最后找到了一个足够简单的教程来了解发生了什么。但是现在,在设置完所有内容后,我在 React.render 方法中遇到了错误:
这是我的组件文件:
var React = require('react');
var box = React.createClass({
render: function() {
return (
<div style='padding: 10px'>
this.props.text
</div>
);
}
});
React.render(<box text='testing server side'/>, document.body);
module.exports = box;
运行npm start时出现错误:
文档未定义
我该如何解决这个问题?我需要还是不需要 render 方法?
为了提供更多上下文,另一个组件需要此 box 组件:
var React = require('react');
var Box = require('../react-jsx/box.js'); //this is the box component
var Component = React.createClass({
render: function() {
return (
<html>
<head>
<title>
React Server Rendering
</title>
</head>
<body>
<Box text='testing'/>
<script src="public/bundle.js"></script>
</body>
</html>
);
}
});
module.exports = Component;
这些都在 index.js 中使用
require('node-jsx').install();
var React = require('react');
var Component = require('../custom-modules/test-react-server-module.js');
var express = require('express');
var router = express.Router();
router.get('/react', function(req, res, next) {
var markup = React.renderToString(Component());
res.send(markup);
});
module.exports = router;
如果我删除渲染方法,我会在浏览器中收到此错误:
无法读取未定义的属性“__reactAutoBindMap”
我看到有人说可能是jsx转换器太旧了,但我想我有最新版本
我没有想法
【问题讨论】: