RN navigation debug 모드시 탭 작동 안할경우

낭만개발자·2021년 10월 7일
0

트러블슛팅

목록 보기
10/17
post-custom-banner

OS - MAC
DEVICE - Android Galaxy Note 10

문제

ReactNative Navigation 라이브러리 사용하고 BottomTab 이나 상단 tab 을 문제없이 설치하고, 디버그 모드로 작동시 갑자기 동작이 안될때가 있다. 클릭했는데 안움직인다는 것.
아마 자신이 잘 설치 했다면 문제는 PC와 스마트폰과의 시각이 안맞는것이다. 구글링을 보통 하면 최종적인 수렴지는 여기 git issue가 될텐데
https://github.com/react-navigation/react-navigation/issues/7883

https://github.com/react-navigation/react-navigation/issues/7883#issuecomment-629345782
여기 처럼

해결 & 해결 과정

스마트폰에서
날짜 & 시간 -> 자동 시간 맞추는것? 있는데 그걸 껐다 키면 된다고 한다. 많이들 되는 것 같은데 난 그렇게 해봐도 adb shell "date" && date 이렇게 command에 명령어를 치니 시차가 몇초 이상 나는 것이었다.
구글링해도 답이 안나와서 걍 탭 안쓰고 디버그모드 사용하다가, 이게 또 문제를 일으킨게,
setInterval() 함수로 비동기로 타임 셋팅 하는 모듈을 구현해야 하는데 1,000 밀리초로 작동하게 만든 모듈이 0.01초마다 아니 걍 멋대로 작동하는 것이다. 디버그 모드에서 맘대로 작동하고, 뭔가 일반 모드에서도 랜더링 기능에 영향을 주는 것 같아서 버그를 어떻게 하지 고민하고 있다가,,
우연히 폰에서 타임이 어떻게 작동하는지 보니 기지국에서 네트워크로 받아온다고 하더라. 그러면 단순히 설정에 자동 시간 맞추는거 껐다 켰다 하는게 아니라 폰을 비행기 모드를 켰다가 끄면 어떨까 싶어 해보니 그 MAC과 1초 이내 오차로 줄여지는 것이었다.
완벽한 해결법인지 확실친 않지만 맥하고 네트워크(wifi)를 일치하게 맞추고(이건 영향이 없을수도 있지만)
폰을 airPlane 모드로 했다가 다시 끄면 Mac과 1초 이내 오차로 맞춰지고(그래도 정확하게 0.1초 이내로 딱 맞춰지진 않는 것 같다.) 그정도 오차면 RN의 디버그 모드에서 탭 문제가 해결되는 것이었다.

어쨋든 나만의 솔루션으로 해결했으니 누군가에게 도움될거라 생각되어
git issue에 이상한 문법으로 작문해서 올려 뒀다 ;;
https://github.com/react-navigation/react-navigation/issues/7883#issuecomment-935745233

기타:
안드로이드 시각 맞추기 셋팅 방법 참고
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=plplaaa4&logNo=220747741719

profile
낭만닥터와 슬의를 보고 저런 개발자가 되어야 겠다고 꿈꿔봅니다.
post-custom-banner

0개의 댓글