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

home2 게시판 React 게시판 숙제 질문: 자식이 부모의 state 가져다쓰고 싶을 때는 props

숙제 질문: 자식이 부모의 state 가져다쓰고 싶을 때는 props

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

    권대근
    참가자
    /*eslint-disable*/
    import logo from './logo.svg';
    import './App.css';
    import { useState } from "react";
    function App() {
      let [글제목, b] = useState(['남자 코트 추천', '대전 우동 맛집', '노트북 스티커 추천']);
      let [likes, setLike] = useState([0, 0, 0]);
      let [modal, setModal] = useState(false);
      return (
        <div className="App">
          <div className='black-nav'>
            <h4>ReactBlog</h4>
          </div>
          {
            글제목.map(function (a, i) {
              return (
                <div className="list">
                  <h4 onClick={() => {
                    setModal(!modal);
                  }}>{글제목[i]}<span onClick={() => {
                    let copy = [...likes];
                    copy[i] += 1;
                    setLike(copy);
                  }}>👍</span>{likes[i]}</h4>
                  <p>11월 21일 발행</p>
                </div>)
            })
          }
          {
            modal == true ? <Modal a={[...글제목]} b={b} 글제목={글제목} /> : null
          }
        </div>
      )
    }
    // -------------------------
    function Modal(props) {
      return (
        <div className="modal">
          <h4>{props.글제목[0]}</h4>
          <p>날짜</p>
          <p>상세내용</p>
          <button onClick={() => {
            let copy = [...props.a];
            copy[0] = '여자 코트 추천';
            props.b(copy);
          }}>글수정</button>
        </div >
      )
    }
    export default App;
    
    
    
    
    코드는 위와 같습니다. modal == true ? <Modal a={[...글제목]} b={b} 글제목={글제목} /> : null
    모달에 저렇게 일일이 필요한 거 적었는데 혹시 더 깔끔하거나 직관적인 코드로 작성 가능할까요??
    #132921

    codingapple
    키 마스터
    변수명은 a b보다는 안에 들어있는 자료 이름으로 짓는게 좋습니다
    깔끔해보이려면 긴 코드 함수로 빼는거 밖엔 없어보입니다
    #132975

    권대근
    참가자
    답변 감사합니다!
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 호 / 개인정보관리자 : 박종흠