부모와 자녀 사이의 소품은 가능하지만 자녀와 부모 사이의 소품은 불가능합니다.
redux 없이 상태를 바꾸는 방법은 무엇입니까?
자식에게 함수를 전달하면 자식이 부모의 함수를 호출합니다.
버튼의 자식이 눌렸을 때 버튼의 내용으로 모드를 변경하는 함수를 구현하고 싶다고 가정해 보겠습니다.
text는 버튼의 내용이고 selectMode는 부모가 소유한 함수입니다.
// TextButton.jsx : 버튼 자식 컴포넌트
export default function TextButton({ text, selectedMode }) {
const onClick = () => { // 이 버튼을 클릭하면
console.log(text);
selectedMode(text); // 부모의 selectedMode를 호출!!
};
return (
<button className="textButton" onClick={onClick}>
{text}
</button>
);
}
// Test.jsx
const (testMode, setTestMode) = useState(); // 테스트 모드
// ... 중략
// 부모 컴포넌트의 함수
const selectedTestMode = (mode) => {
console.log("selected test mode >> ", mode);
setTestMode(mode);
};
return(
// 자식 버튼 컴포넌트
<SelectCategory
mode="실전 모드"
selectedCategoryNum={selectedCategoryNum}
selectedCategoryInfo={selectedCategoryInfo}
/>
);
// ... 생략
이 함수 전달 방법은 모듈화된 구성 요소를 연결하는 데 사용됩니다.
직관적인 방법은 아니지만 솔루션으로 사용하면 좋을 것 같습니다.