<html> <head> <title>Hello React</title> <script src="http://fb.me/react-0.5.0.js"></script> <script src="http://fb.me/JSXTransformer-0.5.0.js"></script> </head> <body> <div id="content"></div> <script type="text/jsx"> /** @jsx React.DOM */ var User = React.createClass({ render: function() { console.log(this.props); props = JSON.stringify(this.props.tokens); nested = JSON.stringify(this.props.nested); return ( <div><h2>{this.props.id}</h2> Email: {this.props.email},<br/> Tokens: {props},<br/> Nested: {nested}</div> ); } }); var CommentList = React.createClass({ render: function() { var users = this.props.data.map(function (item) { return <User id={item.id} email={item.email} tokens={item.proplist} nested={item.nested_proplists}/>; }); return (<div class="commentList">{users}</div>); } }); var CommentBox = React.createClass({ getInitialState: function() { return {data: []}; }, loadData: function() { var p = this; var request = new XMLHttpRequest; request.open('GET', this.props.url, true); request.onload = function() { if (request.status >= 200 && request.status < 400) { data = JSON.parse(request.responseText); request = new XMLHttpRequest; p.setState({data: data.users}); } else { console.log("Request: " + request); } }; request.send(); }, componentWillMount: function() { this.loadData(); }, render: function() { return (<div><h1>Users</h1><CommentList data={this.state.data}/></div> ); }}); React.renderComponent( <CommentBox url="http://localhost:8000/rest/users" pollInterval={5000}/>, document.getElementById('content')); </script> </body> </html>