{"action":"opened","issue":{"url":"https://api.github.com/repos/yoeubi/status-404/issues/10","repository_url":"https://api.github.com/repos/yoeubi/status-404","labels_url":"https://api.github.com/repos/yoeubi/status-404/issues/10/labels{/name}","comments_url":"https://api.github.com/repos/yoeubi/status-404/issues/10/comments","events_url":"https://api.github.com/repos/yoeubi/status-404/issues/10/events","html_url":"https://github.com/yoeubi/status-404/issues/10","id":390089542,"node_id":"MDU6SXNzdWUzOTAwODk1NDI=","number":10,"title":"카카오 맵 API 로딩 인디케이터 적용","user":{"login":"hellomac87","id":32426091,"node_id":"MDQ6VXNlcjMyNDI2MDkx","avatar_url":"https://avatars2.githubusercontent.com/u/32426091?v=4","gravatar_id":"","url":"https://api.github.com/users/hellomac87","html_url":"https://github.com/hellomac87","followers_url":"https://api.github.com/users/hellomac87/followers","following_url":"https://api.github.com/users/hellomac87/following{/other_user}","gists_url":"https://api.github.com/users/hellomac87/gists{/gist_id}","starred_url":"https://api.github.com/users/hellomac87/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hellomac87/subscriptions","organizations_url":"https://api.github.com/users/hellomac87/orgs","repos_url":"https://api.github.com/users/hellomac87/repos","events_url":"https://api.github.com/users/hellomac87/events{/privacy}","received_events_url":"https://api.github.com/users/hellomac87/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-12-12T06:57:20Z","updated_at":"2018-12-12T06:57:20Z","closed_at":null,"author_association":"COLLABORATOR","body":"카카오 맵 API로 구현된 KakaoView 에서 HOC로 작성된 Loading Indicator 적용시 이슈가 있어 남깁니다.\r\n\r\n대부분의 페이지에서 LoadingIndicator를 HOC 형태로 무리없이 사용하고 있습니다.\r\n\r\n동일한 로직을 KakaoView 적용시, kakao api 로직에서 이상한 에러가 발생합니다.\r\n\r\n`currentStyle` undefined 에러였는데, 아마 kakao 로직중의 어느 부분인것 같습니다.\r\n\r\n원인을 살펴보던 도중, js로 작성된 kakao api를 react에 녹이는 부분에서 좀 특징적인 부분이 있는데,\r\n\r\n실제 dom을 가져와서 componentDidmount 부분에서 대부분의 로직을 처리해야 하는 부분입니다.\r\n\r\n실제 dom을 가져오는 부분이 핵심인데, 이 부분을 리액트에서는 ref를 통해 처리합니다.\r\n\r\n우리 로딩 인디케이터의 로직은 각 컴포넌트의 상태에 loading 이라는 상태를 두어서\r\n\r\nloading 의 상태에 따라 해당 컴포넌트나 로딩 컴포넌트를 반환하는 식으로 작동합니다.\r\n\r\nkakaoView 컴포넌트에서는 필수적으로 kakao map이 그려질 dom 이 렌더링 되어야 합니다.\r\n\r\nHOC 로 만들어진 로딩 인디케이터를 적용하게 되면 최초 렌더링 되는 컴포넌트가 로딩 컴포넌트이고\r\n\r\nmap이 그려질 컴포넌트가 존재하지 않기 때문에, 위와같은 에러가 발생하는 것으로 추정됩니다.\r\n\r\n해결책은 HOC로 로딩 인디케이터를 적용하지 않고, 컴포넌트 자체를 불러와서 map이 그려질 dom 위에 덮는\r\n방식으로 구현하였습니다.\r\n\r\n그렇다구여\r\n\r\n"}}
{"actor":{"display_login":"hellomac87"}}