Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. <script type="text/jsx">
  2. /** @jsx React.DOM */
  3. var todoList = React.createClass({
  4. render : function(){
  5. var createItem = function(itemText , idx){
  6. return <li key={idx+itemText} >{itemText}</li>
  7. };
  8. return <ul>{this.props.itemlist.map(createItem)}</ul>
  9. }
  10. });
  11.  
  12. var todoApp = React.createClass({
  13. getInitialState: function() {
  14. return {items: [], text: ''};
  15. },
  16. handleChange:function(name ,e){
  17. this.state.text = e.target.value;
  18. this.setState({ name : e.target.value });
  19. },
  20. handleKeyDown : function(e , idx){
  21. if( e.keyCode == 13 ){
  22. var nextItems = this.state.items.concat([this.state.text]);
  23. this.setState({ items : nextItems , text : '' });
  24. }
  25. },
  26. render :function(){
  27. var results = this.props.items;
  28. return (
  29. <div>
  30. {results.map(function(idx ,item){
  31. this.state.items[idx] = item;
  32. return (
  33. <div key={'outer'+idx}>
  34. <todoList itemlist={this.state.items} />
  35. <input key={idx} onChange={this.handleChange.bind(this, item)} onKeyDown={this.handleKeyDown} onSubmit={this.handleSubmit} />
  36. </div>
  37. );
  38. } , this)}
  39. </div>
  40. );
  41. }
  42. });
  43.  
  44. React.renderComponent(<todoApp items={['item1','item2']} />, document.getElementById('example') );
  45. </script>
  46.  
  47. handleChange:function(name ,e){
  48. this.state.text = e.target.value;
  49. this.setState({ text : e.target.value });
  50. },
  51.  
  52. <input key={idx} onChange={this.handleChange.bind(this, item)}
  53. onKeyDown={this.handleKeyDown} onSubmit={this.handleSubmit}
  54. value={this.state.text} />
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement