이벤트 핸들링 코드 리팩토링하면서 코드 일관성 때문에 커링써서 익명 함수 없앤 다음 컴포넌트에 바로 함수 전달했는데
커링을 쓰면 고정 인자를 미리 바인딩해서 불필요한 익명 함수가 필요 없는걸로 알거든?
근데 여기서 궁금한게
이미 커링을 통해 익명 함수를 제거하고 고정 인자를 바인딩했는데 왜 프롭스로 받는 컴포넌트에서는 여전히 이벤트 핸들러로 감싸줘야 하는지랑
타스 환경에서는 할당할 수 없다고 나오더라고 당연한거지만 ㅇㅇ
자스에선 안해봐서 자스 환경에선 제대로 동작하는지 나도 잘 모르겠긴한데
혹시 아는 사람 있으면 알려줄 수 있냐
단순한 타입 불일치 문제인지 아니면 다른 원인인지 모르겠음
환경은 리액트 임미다
말만 들으면 그냥 타입 제대로 작성하지 않은 문제같은데
코드 첨부를 안하니까 몬가 설명하기가 힘드네
프롭스로 받는 컴포넌트에서는 여전히 이벤트 핸들러로 감싸줘야 하는지 <<< 이 부분이 이해가 안가서 코드를 봐야겠는데 커링은 다항 함수를 단항 함수로 바꾸는 기법이라 모든 매개변수를 받기 전까진 함수가 실행되지 않음 예를들어 const example = (number, eventTarget) => result 이 함수를 커링으로 바꾸면 const example = number => eventTarget => result가 되는데 너가 말한대로 첫번째 매개변수를 고정인자로 바인딩 하면 const fixExample = example(number) 가 될테고 fixExample 함수를 자식 컴포넌트에 props로 내리면 당연히 그대로 이벤트 핸들링 함수에 넣어서 쓸 수 있음
이런 형태로 바로 쓸 수 있단 얘기임 그러니 fixExample을 따로 함수로 묶어서 넣을 필요가 없음 타입스크립트에서 찡찡대는건 너가 타입 매핑을 제대로 안해줘서 그런거고
시발 위에 글 짤렸네 < input onChange={fixExample} /> 형태로 쓸 수 있다는 거임
아 설명 들어보고 내 코드 보니까 맵핑을 제대로 안해줘서 생긴 문제같네 뜯어 고쳐봐야겠다 고맙소!
그냥 코드 보이는거 바꾸려고 커링을 쓰는거면 집어치우셈
왜냐 불필요한 익명함수 제거하려고 쓰는건데 가독성 때문에 쓰라더만 시니어햄아