Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. var data = [
  2. {
  3. id: 1,
  4. name: "Chewbacca",
  5. phone: "+848168",
  6. img: "/img/01.jpg",
  7. adress: "adressElement",
  8. email: "email@mail.ru"
  9. },
  10. {
  11. id: 2,
  12. name: "Leia",
  13. phone: "+848168",
  14. img: "/img/01.jpg",
  15. adress: "adressElement",
  16. email: "email@mail.ru"
  17. },
  18. {
  19. id: 3,
  20. name: "Darth Wader",
  21. phone: "+848168",
  22. img: "/img/01.jpg",
  23. adress: "adressElement",
  24. email: "email@mail.ru"
  25. }
  26. ];
  27.  
  28. var ContactsList = React.createClass({
  29. //обозначили начальное состояние
  30. getInitialState: function() {
  31. return {
  32. displayedContacts: data
  33. };
  34. },
  35.  
  36. onChang: function(e) {
  37. var elem = e.target.value;
  38. var displayedContacts = data.filter(function(el) {
  39. var nameQuery = el.name.toLowerCase();
  40.  
  41. return nameQuery.indexOf(elem) !== -1;
  42. });
  43.  
  44. this.setState({
  45. displayedContacts: displayedContacts
  46. })
  47. },
  48.  
  49. render: function() {
  50. return (
  51. <div className="contList">
  52. <input type="text" placeholder="Enter" onChange={this.onChang} />
  53. <ul>
  54. {
  55. this.state.displayedContacts.map(function(elem, idx) {
  56. return <li><Contact key={elem.id} image={elem.img} name={elem.name} phoneNumber={elem.phone} adress={elem.adress} email={elem.email} /></li>
  57. })
  58. }
  59. </ul>
  60. </div>
  61. )
  62. }
  63. });
  64.  
  65. var Contact = React.createClass({
  66. getInitialState: function() {
  67. return {
  68. isOpened: false
  69. }
  70. },
  71.  
  72. onClickFunc: function() {
  73. this.setState({
  74. isOpened: true
  75. })
  76. },
  77.  
  78. render: function() {
  79. return (
  80. <div onClick={this.onClickFunc}>
  81. <img src={this.props.image} />
  82. <h3>{this.props.name}</h3>
  83. <p>{this.props.phoneNumber}</p>
  84.  
  85. {
  86. (this.state.isOpened) ? <div><p>{this.props.adress}</p><p>{this.props.email}</p></div> : <div></div>
  87. }
  88.  
  89. </div>
  90. )
  91. }
  92. });
  93.  
  94. ReactDOM.render(<ContactsList />, document.getElementById("content"));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement