32
loading...
This website collects cookies to deliver better user experience
npm i axios
https://pokeapi.co/api/v2/pokemon/${Find}
create-react-app pokedex-app
npm start
to check if your app is up and running.import React, { StrictMode } from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
ReactDOM.render(
<StrictMode>
<App />
</StrictMode>,
document.getElementById("root")
);
import PokeAPI from './PokeAPI';
import './App.css';
function App() {
return (
<>
<PokeAPI/>
</>
);
}
export default App;
sprites.front_default
types[0].type.name
import React, { useState, useEffect } from "react";
import axios from "axios";
export default function PokeAPI() {
const [name, setname] = useState("");
const [Find, setFind] = useState("pikachu");
const [Img, setImg] = useState("");
const [Type, setType] = useState("");
useEffect(() => {
async function getData() {
let res = await axios.get(`https://pokeapi.co/api/v2/pokemon/${Find}`);
console.log(res);
setImg(res.data.sprites.front_default);
setType(res.data.types[0].type.name);
}
getData();
}, [Find]);
const Typename = (event) => {
setname(event.target.value);
};
const Search = () => {
if (name !== "") setFind(name);
setname("");
};
return (
<>
<div className="back">
<div className="card">
<img src={`${Img}`} alt="" />
<div className="name">{Find.toUpperCase()}</div>
<div className="type">{Type}</div>
<input type="text" onChange={Typename} value={name} />
<button onClick={Search}>Search</button>
</div>
</div>
</>
);
}