자판기 이벤트 구현 순서 정하기
Input 컴포넌트 (재사용 컴포넌트들의 state 관리)
// 자식 컴포넌트
<Input name='A' value=inputA_Value></Input>
<Input name='B' value=inputB_Value></Input>
const [inputA_Value,setinputA_Value] = useState(0);
const [inputB_Value,setinputB_Value] = useState(0);
//Input 컴포넌트
const Input = () => {
const onChangeEv= (e) => {
switch (props.name) {
case 'A':
props.setinputA_Value(() => e.target.value);
break;
case 'B':
props.setinputB_Value(() => e.target.value);
break;
default:
}
};
return<Input onChange={onChangeEv}>{inputValue}</Input>
}
부모가 같은 컴포넌트들은 부모를 공유함
=> 컴포넌트가 나눠져도 별개의 컴포넌트가 아님
=> 여러곳에서 사용해도 부모에서 선언한 state는 사용된 컴포넌트에 따로 파생되지 않음
해결방법
=> 부모컴포넌트가 아닌 외부 컴포넌트에 각자 state 선언
=> 부모컴포넌트에서 이벤트 설정 시 컴포넌트들마다 porps.name을 지정하여 구분한다
=> switch문을 이용해 사용한다
코인변환