我写了一个反应类,但Chrome在渲染函数中抛出了语法错误。
我在这里附上代码:
var Chatrooms = React.createClass({
getInitialState: function() {
return {
loaded: false,
pages: undefined,
id: "-1",
};
},
loadPages: function() {
url = "/chat/api/chatroom/" + this.props.course + "/get/?format=json";
request = ajax_json_request(url, "GET", {});
request.done(function(response) {
response = jQuery.parseJSON(response);
oldState = this.state;
oldState['chatrooms']=response;
oldState['loaded']=true;
this.setState(oldState);
}.bind(this));
},
componentDidMount: function() {
if(!this.state.loaded) {
this.loadPages();
}
},
render: function(){
console.log(this.state.chatrooms);
return (
<div></div>
);
}
});
&#13;
浏览器将<div></div>
行中的错误显示为Uncaught SyntaxError: Unexpected token <
。我在线检查了语法,对我来说看起来不错。
答案 0 :(得分:1)
您必须使用<script type="text/javascript">
代替<script type="text/jsx">
答案 1 :(得分:1)
尝试在JSX文件的顶部添加JSX编译指示:
/** @jsx React.DOM */
这告诉浏览器使用JSX指令。