【发布时间】:2015-12-04 17:00:49
【问题描述】:
我已经根据 React 教程 (http://facebook.github.io/react/docs/tutorial.html) 设置了所有内容。我是在Python服务器下做的。
React 已加载(实际上 shadow dom 已插入,它建议我安装 React 工具)。
我正在使用 jsx 离线转换器:
# in public/js directory
jsx --watch src/ build/
# terminal output (Linux) follows....
built Module("react")
["app","react"]
app.js changed; rebuilding...
built Module("app")
["app","react"]
public/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
<script src="js/build/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.2/marked.min.js"></script>
<script type="text/jsx" src="js/build/app.js"></script>
</head>
<body>
<div id="content"></div> <!-- here the React component is instantiated -->
</body>
</html>
public/js/src/app.js(JSX 与教程相同)
var CommentBox = React.createClass({displayName: 'CommentBox',
render: function() {
return (
React.createElement('div', {className: "commentBox"},
"Hello, world! I am a CommentBox."
)
);
}
});
React.render(
React.createElement(CommentBox, null),
document.getElementById('content')
);
应转换为 (public/js/build/app.js):
var CommentBox = React.createClass({
render: function() {
return (
<div className="commentBox">
Hello, world! I am a CommentBox.
</div>
);
}
});
React.render(
<CommentBox />,
document.getElementById('content')
);
但实际上并没有(我在运行 jsx 转换器的终端中看到“文件已更改...”)。
此外,我尝试关闭 jsx 转换器并使用第二个代码块手动覆盖 build/app.js。 但是在任何情况下都不会渲染任何内容。
【问题讨论】:
-
您要么切换了 src 和构建代码,要么问题是您尝试将 JS 转换为 JSX,但想要做相反的事情。