
숫자를 입력할 때마다 함수가 돌면서 상태를 바꾸는 setPinCode 함수를 호출한다.
setState가 호출되었다는 자체만으로 다시 로직이 태워질텐데, 그걸 방지하려면 previousState를 그대로 반환시키는 경우는 setState를 호출하지 않도록 해주면 된다.
그렇다고 state를 구독시키면 setState가 호출됨에 따라 state도 바뀌므로 한번 더 호출될 가능성이 있다.
그렇다면 state.length를 구독하면 될까?
const handlePressBackspace = useCallback((): void => { setPinCode((previousState) => { if (previousState.length === 0) { return previousState; } return previousState.slice(0, previousState.length - 1); }); }, [setPinCode]);
위 코드도 마찬가지 관점임