index.tsx 1002 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import React from 'react';
  2. import {Link} from 'react-router-dom';
  3. //import {Pokemon} from '../../../api';
  4. interface Pokemon {
  5. id: number;
  6. nickname: string;
  7. }
  8. interface State {
  9. pokemon: Pokemon[];
  10. }
  11. class PokemonIndex extends React.Component<void, State> {
  12. public state = {
  13. pokemon: [],
  14. };
  15. //public async componentDidMount(): Promise<void> {
  16. public componentDidMount(): void {
  17. try {
  18. //const data = await Pokemon.index();
  19. //this.setState({pokemon: data.data});
  20. this.setState({pokemon: [{id: 1, nickname: 'Bulbasaur'}]});
  21. } catch (err) {
  22. // eslint-disable-next-line no-console
  23. console.log(JSON.stringify(err, null, 2));
  24. }
  25. }
  26. public render(): JSX.Element {
  27. const pokemon: JSX.Element[] = this.state.pokemon.map(
  28. (pkmn): JSX.Element => (
  29. <li key={pkmn.id}>
  30. <Link to={`/pokemon/${pkmn.id}`}>{pkmn.nickname}</Link>
  31. </li>
  32. )
  33. );
  34. return <ul>{pokemon}</ul>;
  35. }
  36. }
  37. export default PokemonIndex;