React

State 끌어올리기

언젠간코딩잘함 2023. 3. 31. 16:24

State 끌어올리기란?

상위 컴포넌트의  상태 변경 함수를 하위 컴포넌트로 전달하고, 이 함수를 하위 컴포넌트가 실행하는 것이다.

 

 

export default function ParentComponent() {
  const [value, setValue] = useState("날 바꿔줘!");

  const handleChangeValue = () => {
    setValue("달라진 값");
  };

  return (
    <div>
      <div>값은 {value} 입니다</div>
      <ChildComponent />
    </div>
  );
}

function ChildComponent() {
  const handleClick = () => {
    // 이 버튼을 눌러서 부모의 상태를 바꿀 순 없을까?
  };

  return <button onClick={handleClick}>값 변경</button>;
}

 

상태를 변경하는 함수는 handleChangeValue 전달은 props.

 

ChildComponent는 마치 고차함수가 인자로 받은 함수를 실행하듯이, props로 전달받은 함수를 컴포넌트 내에서 실행할 수 있게 된다. 다음은 "상태 변경 함수"는 버튼이 클릭할 때 실행되기를 원하기 때문에, 콜백함수를 실행한다.