Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. import React from 'react';
  2.  
  3. export default class TestPage extends React.Component {
  4. constructor(props) {
  5. super(props);
  6.  
  7. this.state = {
  8. nodes: [
  9. {id: 1, content: "qwerty"},
  10. {id: 2, content: "abcdef"}
  11. ],
  12. selected_node: {}
  13. };
  14. }
  15. cancelEdit() {
  16. this.setState({selected_node: {}});
  17. }
  18. selectNode(node) {
  19. this.setState({selected_node: node});
  20. }
  21. handleContent(event) {
  22. let selected_node = this.state.selected_node;
  23. selected_node.content = event.target.value;
  24. this.setState({selected_node: selected_node});
  25. }
  26. render() {
  27. let self = this;
  28.  
  29. return (
  30. <div>
  31. <table>
  32. <thead>
  33. <th>id</th>
  34. <th>content</th>
  35. <th>edit</th>
  36. </thead>
  37. <tbody>
  38. {this.state.nodes.map(function(node, i) {
  39. if(node.id == self.state.selected_node.id) {
  40. return <tr key={i}>
  41. <td>{node.id}</td>
  42. <td><input
  43. value={self.state.selected_node.content}
  44. onChange={self.handleContent.bind(self)}
  45. />
  46. </td>
  47. <td>
  48. <button>save</button>
  49. <button onClick={self.cancelEdit.bind(self)}>cancel</button>
  50. </td>
  51. </tr>
  52. } else {
  53. return <tr key={i}>
  54. <td>{node.id}</td>
  55. <td>{node.content}</td>
  56. <td><button onClick={self.selectNode.bind(self, node)}>edit</button></td>
  57. </tr>;
  58. }
  59. })}
  60. </tbody>
  61. </table>
  62. </div>
  63. );
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement