dev-debris / coin-simulator

https://coin-simulator.vercel.app
1 stars 0 forks source link

fetch 함수 주소 안에 변수 넣기! #24

Closed SunNacho closed 1 year ago

SunNacho commented 1 year ago

api 호출로 받아온 stocks는 다음과 같습니다

스크린샷 2023-03-06 오전 10 35 13

데이터 배열 안의 키인 market을 변수로 해당 market의 현재가, 등락률 등등을 불러오고 싶은데요...

const response = await fetch('https://api.upbit.com/v1/ticker?markets=KRW-BTC', options); 이런 형식으로 주소를 불러와야 값을 받을 수 있어서, 밑의 사진처럼 주소를 넣어봤습니다.

스크린샷 2023-03-06 오전 10 38 51

그랬더니 무수한 에러의 향연이..!!

스크린샷 2023-03-06 오전 10 39 37

무엇이 잘못되었구 어떻게 해야 할까요?

HojinAn commented 1 year ago

이건 코드를 좀 봐야 알거 같아요 적당한 브랜치명으로 push 해볼래요??

SunNacho commented 1 year ago

올렸습니다!

SunNacho commented 1 year ago

제 추측이지만 StockListItem 컴포넌트안에 useEffect를 사용한게 문제인것 같기도하네요....어떻게 해결할 수 있을까요

HojinAn commented 1 year ago

디버깅할 때는 가장 상단의 에러부터 확인해보는 게 좋아요.
실행해보니 동일한 오류가 발생해서 코드를 보니

  1. StockList에 fetch되는 298개의 item
  2. 렌더링 되는 각각의 item이 요청을 전부 다 보내게 되어서 1초 만에 300개 가까이의 API 요청을 보내게 되는데요.

업비드 개발자 센터 요청 수 제한에 따르면 REST API 요청으로는 1초에 10개 제한이 걸려서 그 뒤의 요청들은

image

다음과 같이 CORS 에러로 요청을 막아뒀네요

image
이렇게 10개만 요청을 보내보니 오류 없이 잘 동작합니당~

HojinAn commented 1 year ago

해결 되면 close 해주세요 @SunNacho

SunNacho commented 1 year ago

와 이런 이유 때문이라니 감사합니다 역시 천재