2017-12-16 10 views
2

Mapbox GL 사용자 정의 마커를 추가하는 방법을 제공 반작용하고 추가 사용 :사용자 정의 마커를, 그러나 그것은 먼저 마커를 렌더링하는 ReactDom를 사용하여 강제로 인수, 같은 <code>HTMLElement</code> 소요,

const placeholder = document.createElement('div'); 

const marker = ReactDOM.render(
    <div className='mapboxgl-marker'> 
    <marker/> 
    </div>, placeholder); 

const markerRef = new mapboxgl.Marker(marker).setLngLat(position).addTo(map); 

을 나는 이것이 render() 함수 외부에서 발생하기 때문에 이것이 차선책이라고 생각합니다.

더 좋은 방법이 있습니까?

답변

0

React 구성 요소를 확장하여 shouldComponentUpdate 기능을 사용하여 렌더링하는 횟수를 제어 할 수 있습니다.

true을이 기능으로 반환하면 이 다시 렌더링됩니다. 한 번만 렌더링하면 shouldComponentUpdate을 항상 false로 하드 코딩 할 수 있습니다. 그러나 그때 당신은 그것이 단 한 번 실행되고 싶다면 그 관심사는 정확히 무엇입니까? 특정 조건에서만 조건부로 다시 렌더링하려는 경우 shouldComponentUpdate 함수에서 해당 조건을 처리 할 수 ​​있습니다.

자세한 정보 : 'https://reactjs.org/docs/react-component.html#shouldcomponentupdate