Closed aajy closed 2 weeks ago
input의 상태를 바꿔주는 className을 위한 internalValue state로 인해 발생한 문제
input의 value를 나타내는 state 두 개가 충돌해 발생한 것이다.
props로 전달받는 state만을 사용해서 input 태그의 기능과 해당 Input컴포넌트
의 공통 속성으로 value와 onChange를 선별해
props로 길을 열어두어 추상화를 하였는데,
그 props로 열어둔 데이터 흐름을 input내부의 또다른 input value를 나타내는 internalValue state가 흐름을 끊어 에러가 발생한 것이다.
isActive라는 className을 주는 분기처리를 할 때 굳이 internalValue가 필요했는지 다시 생각해 본다.
문제
Input컴포넌트
의 props는 input의 속성인 value와 onChange를 전달한다. 이때 value로 전달하는 state를 부모 컴포넌트에서 변경을 했지만,Input컴포넌트
의 onChange가 실행하지 않는 이슈가 생겼다.부모 컴포넌트
export const Input = ({ value = '', onChange, maxInputLength = 20 }: InputProps) => { const [internalValue, setInternalValue] = useState(value);
};