๐ Nomad Coder ReactJS๋ก ์ํ ์น ์๋น์ค ๋ง๋ค๊ธฐ
๊ฐ์๋ ธํธ (2021 Updated ver.)
๊ทผ๋ฐ option id๊ฐ์ ์๋ฌด๋ฆฌ ํด๋ ์ถ์ถ์ด ์๋๋๋ฐ ์ ๊ทธ๋ฐ์ง ์ ๋ฐ ์ ๊ณ ์ถ ใ
yo,...
id ๊ฐ์ด ์ ๋ค์ด๊ฐ๋๋ฐ~~ ์๋๋ฐ ์ด๊ฑธ ์ด๋ป๊ฒ ๊ฐ์ ธ์์ผ ๋๋ ๊ฑธ๊น์?..
์์ฐ.. ๋๋ฌด ์ด๋ ตใธ ใ
!~!
๊ฐ์ ๋ค์ ๋ ๋ค ์ดํดํ๊ณ ์๊ฒ ๋๋ฐ ๋ง์ ํผ์ ํ๋ ค๋๊น ์ฐ์งธ์ผ ๋ ์ง ์ด๋ฆฌ๋ฒ๋ฒ...
๊ทธ๋๋ ํฌ๊ธฐ ์ ํ๊ตฌ ํด ๋๋ค..ใ
ใ
ํธ~!
import React from "react";
import { useState, useEffect } from "react";
function App() {
const [loading, setLoading] = useState(true); // ๋ก๋ฉ ๋ฐ์ดํฐ
const [coins, setCoins] = useState([]); // ์ฝ์ธ ๋ฆฌ์คํธ๋ฅผ ์ ์ ํ๋ฉํ๊ธฐ ์ํจ
// My code
const [money, setMoney] = useState("");
const [selectedCoin, setSelectedCoin] = useState(0);
const onChange = (e) => {
setMoney(e.target.value);
};
const onSelect = (e) => {
setSelectedCoin(e.target.value);
// console.log(e.target.id); :***์ด๊ฒ ํ๋ฆฐ๊ฑด ์๋๊ฑฐ ๊ฐ์๋ฐ ์ value๋ ์กฐํ๊ฐ ๋๋๋ฐ id๋ ์๋๋ ๊ฑด์ง...?
};
useEffect(() => {
fetch("https://api.coinpaprika.com/v1/tickers")
.then((response) => response.json())
.then((json) => {
setCoins(json.slice(0, 20)); // ์คํ์ค๋ฒ ์๋ฌ๋ ์ ์ผ๋จ 20๊ฐ๋ก ์๋ฆ
setLoading(false);
});
}, []);
// console.log(coins);
return (
<div>
<div>
<h1>The Coins Ranking TOP {coins.length}</h1>
{loading ? (
<strong>Loading...</strong> //๋ก๋ฉ์ด๋ฉด
) : (
//๋ก๋ฉ์ด ๋๋๋ฉด
<select onChange={onSelect}>
<option>
====== Choose what u want ! ======
</option>
{coins.map((coin) => (
// coin์ด id๊ฐ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ index๊ฐ ์๋๋ผ id๋ฅผ ํ์ฉํด์ ๋ง๋ค์ด์ค
<option
key={coin.id}
id={coin.name} // ???์ ๋๋์ฒด ์ ๊ทผ์ด ์๋๋๊ฑฐ์
value={coin.quotes.USD.price}
>
{coin.name} ({coin.symbol}) : $
{coin.quotes.USD.price.toFixed(3)} USD
</option>
))}
</select>
)}
</div>
// my code
<br /> <hr />
<div>
<label htmlFor="have">
<h1>YOU HAVE</h1> $
</label>
<input
id="have"
onChange={onChange}
value={money}
placeholder="Money.."
type="number"
></input>
<label htmlFor="buy">
<h1>YOU CAN BUY</h1>
</label>
<input
// onChange={onChange}
id="buy"
value={
money === "" || Infinity
? "0"
: Math.floor(money / selectedCoin)
}
disabled
></input>
Coins..
</div>
</div>
);
}
export default App;