Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. import React from 'react';
  2. import './App.css';
  3. import * as historyData from './history.json';
  4. // import Event from './Event'
  5.  
  6. class App extends React.Component {
  7. state = {
  8. events: historyData.result.events
  9. }
  10.  
  11. search = (event) => {
  12. event.preventDefault()
  13. const query = event.target.parentElement.children[0].value
  14. // console.log(this.state.events)
  15. // 1. create a filtered list (array) based on the search query, using the .filter method on this.state.events, .includes on the description string
  16. const filtered = this.state.events.filter((event) => {
  17. return event.description.includes(query)
  18. })
  19. // 2. setState to be the filtered list
  20. this.setState({
  21. search: filtered
  22. })
  23. // 3. render the filtered array in render
  24. }
  25.  
  26. render() {
  27. const { search } = this.state
  28. const centerHeading = {
  29. textAlign: 'center',
  30. color: 'red'
  31. }
  32. return (
  33. <>
  34. <h1 style={centerHeading}>Search for 20th Century Events</h1>
  35. <form>
  36. <input type="text" name="search" id="search"/>
  37. <input onClick={this.search} type="submit" value="Submit" id="submit" />
  38. </form>
  39. {search ? search.map((event, index) => {
  40. return (
  41. <>
  42. <h3>{event.date}</h3>
  43. <p key={index}>{event.description}</p>
  44. </>
  45. )
  46. }) : null}
  47. </>
  48. );
  49. }
  50. }
  51.  
  52. // stateful component
  53. // class, like object orientated in python
  54. // using render(), which is a lifecycle method, kind of like an instance method in python
  55.  
  56. export default App;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement