useEffect에 목적은 디펜던시 배열에 걸린 상태가 바뀔 때 실행되는 것에 목적이 있습니다만, 상태가 바뀔 때말고 로직을 처리하다가 다른 상태가 필요한 경우가 있습니다. 그때는 로직에 들어가는
useEffect에 목적은 디펜던시 배열에 걸린 상태가 바뀔 때 실행되는 것에 목적이 있습니다만, 상태가 바뀔 때말고 로직을 처리하다가 다른 상태가 필요한 경우가 있습니다. 그때는 로직에 들어가는 상태가 최신화가 안될 가능성이 있기 때문에 값의 최신화를 위해 디펜던시 배열에 넣어주는 경우가 생기며, 질문자분 오류 역시 useEffect 안에서 사용하는 상태는 모두 디펜던시에 넣어서 최신 상태를 유지해야한다고 할 수 있습니다. 하지만 이 것은 필요없을 때도 Effect가 발생해 원하는 상태 변경때만 신경 쓸 수 없게됩니다 해당 문제는 React를 사용하는 사람들이 많이 공감하는 문제이며, 이를 위해 useEvent라는 rfc도 나오게됩니다. useEvent가 나온 배경 같은 것도 살펴보면 좋을 것 같습니다 😀 https://github.com/reactjs/rfcs/pull/220#issuecomment-1261018254