Recat는 컴포넌트안에 컴포넌트를 집어넣어서 사용할 수 있는데 그럴 때 안에 들어간 컴포넌트를 자식컴포넌트라고 부른다.
이 때 자식컴포넌트가 부모가 가진 state를 사용하고 싶다면 꼭 props(properties)로 전송을 해주어야한다.
즉, props는 부모 컴포넌트에서 자식 컴포넌트로 전달해주는 객체이다.
- <자식컴포넌트 전송할이름={state명}>
- 자식컴포넌트 선언하는 function 안에 파라미터를 하나 만들어주면 된다.
function App (){
let [name, setName] = useState(['여자 코트 추천', '강남 우동 맛집', '재밌는 코딩시간']);
return (
<div>
...
<Modal name={name}></Modal>
</div>
)
}
function Modal(props){
return (
<div className="modal">
<h2>제목 { props.name[0] }</h2>
<p>날짜</p>
<p>상세내용</p>
</div>
)
}
- props는 <함수명 aaa={aaa} bbb={bbb}> 이런식으로 개수상관없이 무한히 전송이 가능하다.
- props라는 파라미터엔 전송한 모든 props 데이터가 들어가있는데 'props.전송할이름' 이런 식으로 원하는 것만 꺼내쓸수있다.
- props 전송할 땐 꼭 {} 중괄호로 전송해야하는건 아니다.
<함수명 전송할이름={변수명}> 이렇게 변수명을 넣고싶으면 중괄호를 쓰고,
<Modal 전송할이름="랄랄라"> 이렇게 일반 텍스트를 전송하고 싶으면 따옴표를 쓸수도 있다.