-
-
Notifications
You must be signed in to change notification settings - Fork 29
fix: iOS 네이버맵 초기 설정값 셋팅 문제 수정 #130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@gargoyle92 이부분은 더욱 쉬운 해결법이 있습니다. |
근본적인 해결책은 아닌 것 같은데 괜찮을까요? |
@gargoyle92 말씀 주신것처럼 근본적인 해결책은 아니긴 합니다. 생각해보니 올려주신 내용으로 해도 좋을 것 같네요. 감사합니다 :) |
이게 정확히 어떤 문제인지 알 수 있을까요? ios new arch에서 view recycle로 인해 초기값이 제대로 불러와지지 않는 현상인가요? updateProps 함수에서 조건문을 하나하나 달아주는것은 코드가 지저분해져서 좋은 해결책이 아닌것같습니다. |
@mym0404 말씀하시는게 맞습니다 . 리사이클 뷰가 이전 상태를 유지하고 있어서 발생하는 문제입니다. |
prepareForRecycle에서 명시적 초기화 - 모든 Boolean 설정들을 네이버 지도 SDK 기본값으로 리셋 - 레이어 그룹, 지도 타입, 제스처 설정 등 모든 상태 초기화 - 클러스터링 관련 데이터도 완전히 정리
기여 감사합니다. 이 방식이 근본적으로 문제를 해결할 수 있다면 좋은 방식이라고 생각합니다. 하지만 New Arch가 도입되면서 View들이 자동으로 recycle이 되며 다른 Native Component 라이브러리들도 동일한 현상을 겪었을 것이라 생각되는데, 다른 라이브러리들의 workaround와 문제 접근법을 조사를 해본뒤에 제대로된 고려를 해볼 예정입니다. 이 이슈가 naver map 컴포넌트를 사용하지 못할 정도로 큰 영향을 미치고 있는 것인가요? |
네 안타깝게도 해당 문제는 제 경험에서 아주 크리티컬한 문제였습니다.
지도상에서 사용할 수 있는 controller (줌 레벨 조정기, 내 위치로) 등의 boolean 이 모두 초기화 되지않아서 |
저도 비슷한 문제로 디버깅을 했었던 적이 있어서 글을 남겨봅니다. RNCNaverMapView 의 160 번 라인을 보면 상태가 기존과 다를때에만 view props 를 변경하도록 되어있는데 네이버 맵 sdk 에서는 true 이어서 지도에는 컨트롤러가 출력되지만 library native 셋팅은 false 로 되어있어 처음 RN 에서 false 로 넘겨주면 상태값이 같아 변경하지 않는 문제로 파악했습니다. (다른 이슈이면 말씀 부탁드립니다) newArchitecture codeGen 에 의해 자동으로 생성된 cpp파일에 ( 스키마(스펙) 파일에서 단순히 boolean으로 선언하고 별도의 기본값을 지정하지 않으면, C++ 기본형의 특성상 false(또는 0)가 사용되는 것 같습니다. (c++ 은 잘 몰라서 혹시 여기서 오류가 있다면 말씀 해주셔도 좋을 것 같습니다 :)) 그래서 WithDefault<boolean, true> 를 사용하여 codegen 을 다시 동작하니 Props.cpp 의 그래서 저는 스펙파일 PR 을 올리려고 했었는데 벌써 같은 이슈로 올라온 것 같아서 댓글로 남깁니다 |
제가 알기로도 지정하지 않으면 false로 되는것으로 알고있습니다. 그 방법대로 WithDefault 를 통해 js단에서 해결될수있는 문제라면 그 방식대로 해결을 하면 좋을것같습니다. |
Type of change
What does this change?
Fixes #<issue_number_goes_here> 🎯
#129