• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 글정렬버튼을누르고 /detail/0

글정렬버튼을누르고 /detail/0

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #68440

    정중식
    참가자
    이렇게가면 그대로입니다.
    console.log(shoes);를 Home.js 에서찍으면 글정렬버튼을 누를시 제대로 글정렬된 state를 반환하는 반면에,
    Detail.js 에서 콘솔을찍으면 글정렬이안된 원본 state를 반환시켜주고있어요
    
    Detail.js에서 filter 혹은 find 함수로 조건문을걸어서 반환시키고 콘솔찍어보면 글정렬된 회색신발이아니라 검은색슈즈를 계속 출력해주고있어요..ㅠㅠ
    뭐때문에그런걸까요?
    
    제 코드는 이렇습니다
    
    App.js 코드
    
    
    import React, { useState } from 'react';
    import { Routes, Route, Outlet } from 'react-router-dom';
    import 'bootstrap/dist/css/bootstrap.min.css';
    import './App.css';
    import data from './data';
    import Header from './components/Header';
    import Home from './pages/Home';
    import Detail from './pages/Detail';
    import About from './pages/About';
    import Event from './pages/Event';
    import EventOne from './pages/EventOne';
    import EventTwo from './pages/EventTwo';
    const App = () => {
      const [shoes, setShoes] = useState(data);
      const handleSortBtn = () => {
        const copy = [...shoes];
        copy.sort((a, b) => (a > b ? 1 : -1));
        setShoes(copy);
      };
      return (
        <>
          <Header />
          <Routes>
            <Route
              path='/'
              element={<Home shoes={shoes} handleSortBtn={handleSortBtn} />}
            />
            <Route path='/detail/:id' element={<Detail shoes={shoes} />} />
            <Route path='/about' element={<About />} />
            <Route path='/event' element={<Event />}>
              <Route path='one' element={<EventOne />} />
              <Route path='two' element={<EventTwo />} />
            </Route>
            <Route path='*' element={<div>없는페이지임</div>} />
          </Routes>
        </>
      );
    };
    export default App;
    Detail.js
    
    import React from 'react';
    import { useParams } from 'react-router-dom';
    const Detail = ({ shoes }) => {
      const { id } = useParams();
      const findItem = shoes.filter((item) => item.id == id);
      console.log(findItem);
      return (
        <div className='container'>
          <div className='row'>
            <div className='col-md-6'>
              < img src={shoes[id].src} width='100%' alt='' />
            </div>
            <div className='col-md-6 mt-4'>
              <h4 className='pt-5'>{shoes[id].title}</h4>
              <p>{shoes[id].content}</p>
              <p>{shoes[id].price}원</p>
              <button className='btn btn-danger'>주문하기</button>
            </div>
          </div>
        </div>
      );
    };
    export default Detail;
     
    #68459

    codingapple
    키 마스터
    detail페이지 이동은 주소창입력말고 버튼으로 합시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠