@@ -2,25 +2,24 @@ import React, { useEffect, useState } from 'react';
22import { useParams } from 'react-router-dom' ;
33
44const RankingPage = ( ) => {
5- const { rankingName } = useParams ( ) ;
6- const [ rankingData , setRankingData ] = useState ( [ ] ) ;
7- const [ isLoading , setIsLoading ] = useState ( true ) ; // 로딩 상태 추가
8- const [ error , setError ] = useState ( null ) ; // 에러 상태 추가
5+ const { rankingName } = useParams ( ) ; // URL 파라미터 값 가져오기
6+ const [ rankingData , setRankingData ] = useState ( [ ] ) ; // 랭킹 데이터
7+ const [ isLoading , setIsLoading ] = useState ( true ) ; // 로딩 상태
8+ const [ error , setError ] = useState ( null ) ; // 에러 상태
99
10+ // 랭킹 데이터 가져오기
1011 useEffect ( ( ) => {
1112 const fetchRankingData = async ( ) => {
12- setIsLoading ( true ) ;
13- setError ( null ) ;
13+ setIsLoading ( true ) ; // 로딩 시작
14+ setError ( null ) ; // 에러 초기화
1415 try {
15- console . log ( rankingName ) ;
16+ // 랭킹 데이터 가져오기
1617 const response = await fetch ( `${ import . meta. env . VITE_DEFAULT_API_URI } /v1/character/ranking/${ rankingName } ` ) ;
17- if ( ! response . ok ) {
18- throw new Error ( `HTTP error! Status: ${ response . status } ` ) ;
19- }
18+
19+ // 응답이 성공적이면 데이터를 상태에 저장
2020 const data = await response . json ( ) ;
2121 setRankingData ( data . result ) ;
2222 } catch ( error ) {
23- console . error ( 'Error fetching ranking data:' , error ) ;
2423 setError ( '데이터를 가져오는 데 실패했습니다.' ) ; // 에러 메시지 설정
2524 } finally {
2625 setIsLoading ( false ) ; // 로딩 종료
@@ -30,13 +29,11 @@ const RankingPage = () => {
3029 fetchRankingData ( ) ;
3130 } , [ rankingName ] ) ;
3231
33- const sortedRankingData = rankingData . sort ( ( a , b ) => a . ranking - b . ranking ) ;
34-
3532 return (
3633 < div >
3734 { isLoading && < p > 로딩 중입니다...</ p > } { /* 로딩 상태 표시 */ }
3835 { error && < p style = { { color : 'red' } } > { error } </ p > } { /* 에러 메시지 표시 */ }
39- { ! isLoading && ! error && sortedRankingData . length > 0 && (
36+ { ! isLoading && ! error && rankingData . length > 0 && (
4037 < table style = { { width : '100%' } } >
4138 < thead >
4239 < tr >
@@ -50,7 +47,7 @@ const RankingPage = () => {
5047 </ tr >
5148 </ thead >
5249 < tbody >
53- { sortedRankingData . map ( ( item , index ) => (
50+ { rankingData . map ( ( item , index ) => (
5451 < tr key = { index } onClick = { ( ) => window . location . href = `http://localhost:3000/character/${ item . info . name } ` } >
5552 < td > { item . ranking } </ td >
5653 < td > < img src = { item . info . characterImage } alt = { `${ item . info . name } 이미지` } /> </ td >
0 commit comments