공부방

props 응용 본문

React

props 응용

코딩 화이팅 2024. 6. 3. 16:18

자식 컴포넌트의 모달에서 각 부모 컴포넌트에 있는 글제목 state에 맞게 제목 띄우기

1. html css로 미리 디자인

2. 현재 UI의 상태를 state로 만들기

  • 부모에서 몇번째를 눌렀는지 자식 컴포넌트로 보내기 위해 그 동적인 상태값을 state로 만들어준다.
let [title, setTitle] = useState(0);

3. state에 따라서 UI가 어떻게 보일지 작성

  • title==0이면 props.글제목[0]
  • title==1이면 props.글제목[1] 이런식으로 코드를 작성하면 됨
  • 따라서 부모 컴포넌트에서 만든 state를 자식 컴포넌트로 props 전송을 해주고 자식 컴포넌트에서 부모 컴포넌트에서 받은 props state를 사용한다.
function App (){
  let [title, setTitle] = useState(0);
  (생략)
  {
    modal == true ? <Modal title={title} 글제목={글제목} /> : null
  }
}

function Modal(props){
  return (
    <div className="modal">
      <h4>{ props.글제목[props.title] }</h4>
      <p>날짜</p>
      <p>상세내용</p>
    </div>
  )
}
  • 각각 글제목 누르면 setTitle(i) 해달라고 코드를 작성하여 title state 값을 변경시켜주면된다.
  • onClick에 많은 함수 넣고 싶으면 함수들이 있는 곳에 중괄호로 묶고 ;으로 함수를 하나씩 나눠주기
function App (){
  return (
    <div>
      { 
        글제목.map(function(a, i){
          return (
          <div className="list">
            <h4 onClick={()=>{ setModal(true); setTitle(i); }}>{ 글제목[i] }</h4>
            <p>2월 18일 발행</p>
          </div> )
        }) 
      }
    </div>
  )
}
  • props 전송은 자식에서 부모로는 못 보내기 때문에 state 값은 컴포넌트들 중 최고로 높은 부모에게 만들어놔야된다.

'React' 카테고리의 다른 글

input 태그 안에 글 올리기, 글 삭제하기  (1) 2024.06.15
input 태그  (1) 2024.06.15
props  (1) 2024.06.03
map 반복문  (0) 2024.06.02
동적인 모달창 만들기  (0) 2024.06.02