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

home2 게시판 React 게시판 자식 컴포넌트 안의 컴포넌트에게 부모 state 전송하기

자식 컴포넌트 안의 컴포넌트에게 부모 state 전송하기

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

    이도아
    참가자

    재고가 빈칸으로 나오는데 이유가 뭘까요??

     

     

    1. 부모 컴포넌트

     

    function App() {

      let [shoes, shoes변경] = useState(Data);
      let [재고, 재고변경] = useState(10,11,12);

     

    2. 자식 컴포넌트

     

     

    function Detail(props){

      
      let {id} = useParams();
      let history = useHistory();
      let [inputData,inputData변경] = useState('');

      useEffect(()=>{
        let 타이머 = setTimeout(()=>{
          alert변경(false)
        },2000);
      },[]);

      return(
    <div className="container">
      <박스>
        <제목 className="red">상세페이지</제목>
      </박스>

      {inputData}
      <input onChange={(e)=>{inputData변경(e.target.value)}}></input>
      
      {
        alert == true
        ? (
          <div className="my-alert">
        <p>재고가 얼마 남지 않았습니다</p>
      </div>
        )
        : null
      }
          <div className="row">
            <div className="col-md-6">
              <img src="https://codingapple1.github.io/shop/shoes1.jpg" width="100%" />
            </div>
            <div className="col-md-6 mt-4">
              <h4 className="pt-5">{props.shoes[id].title}</h4>
              <p>{props.shoes[id].content}</p>
              <p>{props.shoes[id].price}</p>

              <Info 재고={props.재고}></Info>

              <button className="btn btn-danger" onClick={()=>{
                props.재고변경([9,11,12])
              }}>주문하기</button> 
              <button className="btn btn-danger" onClick={()=>{history.goBack();}}>뒤로가기</button> 
            </div>
          </div>
    </div> 
    )
    }

    function Info(props){
      return(
        <p>재고 : {props.재고[0]}</p>
      )
    }
    export default Detail;

     

     

    이렇게 했는데 화면에 '재고 : '  이렇게만 뜨네요 ㅠㅠㅠ 이유가 뭘까요?

    혹시나해서 Array로 바꿔봤는데, 이건 아예 오류가 뜨네요...

    function App() {

      let [shoes, shoes변경] = useState(Data);
      let [재고, 재고변경] = useState[10,11,12];

    #9472

    codingapple
    키 마스터

    useState() 쓰실 땐 state로 만들 자료를 () 소괄호안에 넣어주시면 됩니다

    근데 10,11,12 같은 숫자 3개를 넣고싶으면 array안에 한번에 담으십시오 

    useState([10,11,12])

    #9486

    이도아
    참가자

    앗 감사합니다

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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