props로 전달되는 함수 가독성 높이기
상황
부모 컴포넌트에서 자식컴포넌트에게 props로 함수를 넘기는 상황이다.
const goUrl = (path: string) => {
router.push(path);
};
이 goUrl함수를
<Child
...
goUrl={() => {
goUrl(option.path);
}
/>
Child라는 컴포넌트에 props로 넘기는 상황이다.
문제 해결
goUrl함수는 호출되면 어떠한 값을 리턴하지 않고 단순히 함수블럭 내에서 router.push(path)
만을 실행시킨다.
즉, goUrl은 인자를 받아서 무언갈 리턴하지않고 함수블럭내에서 인자에 대해서 어떠한 동작을 행하는 함수이다.
이때 이러한 함수를 props로 자식 컴포넌트에게 전달할때 가독성을 좋게하는 방법이있다.
const goUrl = (path: string) => () => {
router.push(path);
};
goUrl
이라는 함수를 함수를 리턴하는 함수로 바꾸는것이다.
무언가를 리턴하는 함수로 바꾼다면 props로 goUrl
이라는 함수를 props로 전달할때 가독성을 더좋게 만들수있다.
그럼 결과를 보면!
<Child
...
goUrl={goUrl(option.path)}
/>
실제적으로 전달하려는 목적이 변하였는가? - NO
전달하려는 목적 - router.push(path)
를 동작하게 하는 함수를 보내고싶었다.
전달되는 props는 동일하나 props에 해당 함수를 정의할 때 가독성이 훨씬 높아진걸 볼수가 있다.
- 함수를 props로 전달할때 가독성 높이는 방법으론 함수를 리턴하는 방법이 있다.
Author And Source
이 문제에 관하여(props로 전달되는 함수 가독성 높이기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yjs3819/props로-전달되는-함수-가독성-높이기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)