|
|
@@ -1,18 +1,23 @@
|
|
|
import React from 'react';
|
|
|
-import PropTypes from 'prop-types';
|
|
|
+import {RouteComponentProps} from 'react-router';
|
|
|
import {Link} from 'react-router-dom';
|
|
|
|
|
|
import {Pokemon} from '../../../api';
|
|
|
|
|
|
-class PokemonShow extends React.Component {
|
|
|
- static propTypes = {
|
|
|
- match: PropTypes.object.isRequired,
|
|
|
- };
|
|
|
+export interface IPokemon {
|
|
|
+ id: number;
|
|
|
+ nickname: string;
|
|
|
+}
|
|
|
+
|
|
|
+interface Props extends RouteComponentProps<any> {
|
|
|
+ Pokemon: IPokemon;
|
|
|
+}
|
|
|
|
|
|
- state = {
|
|
|
- pokemon: {},
|
|
|
- };
|
|
|
+interface State {
|
|
|
+ pokemon: IPokemon;
|
|
|
+}
|
|
|
|
|
|
+class PokemonShow extends React.Component<Props, State> {
|
|
|
async componentDidMount() {
|
|
|
try {
|
|
|
const data = await Pokemon.get(this.props.match.params.id);
|
|
|
@@ -23,7 +28,7 @@ class PokemonShow extends React.Component {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- render() {
|
|
|
+ render(): JSX.Element {
|
|
|
return (
|
|
|
<>
|
|
|
{this.state.pokemon.id}: {this.state.pokemon.nickname}
|