-
redux-saga + 클래스 인스턴스 멤버 함수React 2024. 2. 22. 21:31
redux-saga에서 yield call을 통해 정의해놓은 클래스 인스턴스의 멤버 함수를 호출하려고 보니, 멤버 함수 속 this가 null을 참조하고 있었다.
처음에는 클래스 생성자로 인스턴스를 생성할 때 인수 전달이 제대로 안되었나보다 하고 console.log를 찍어가며 디버깅 해보았지만 값은 잘 들어가고 있었다.
혹시 몰라 yield call 대신 함수 직접 호출을 해보니 동작이 잘 되었다.
이유가 궁금하여 찾았더니 아래 스택 오버 플로우 글을 찾았다.
*결론: yield call을 통해 인스턴스의 멤버 함수 호출 시 this가 null을 가리키므로 call에 context를 같이 전달하던가, call에 전달하는 함수에 bind 처리해서 this를 직접 정의해줘야한다.
this는 호출되는 방식으로 정해진다고 공부할 때 봤었는데, 이렇게 업무를 처리하는 중에 직접 겪어보니 신기했고 자바스크립트 기초는 한없이 강조해도 부족하지 않을만큼 중요하다는 것을 느꼈다.
'React' 카테고리의 다른 글
Render and Commit (0) 2024.02.23 리액트 공식문서 - LEARN REACT > Managing State 정리 (0) 2024.02.22 state lifting up (0) 2024.02.22 (2024.02.21)관심사 분리? 응집도? 수준을 결정하는데 도움이 된 경험 (0) 2024.02.21 React에서 list를 다룰 때 각 item에 key를 넣어주어야하는 이유 (0) 2022.07.17