Я создаю приложение, в котором у меня есть компонент «Наложение» и рендеринг компонента «Карта», например:
<div>
{showOverlay && <Overlay />}
<Map /> // this component should mount once
</div>
Оверлей показывает, что карта загружается снизу, но когда я удаляю Overlay (установите для showOverlay значение false), компонент Map
перезагружается.
Сначала я подумал, что компонент Map
просто рендеринг, но после некоторого копания я обнаружил, что компонент на самом деле перемонтируется.
Если я войду в методы componentWillMount
, componentWillUnmount
и render
, журнал появится в таком порядке (что кажется противоречивым)
render
willUnmount
willMount
Родитель не перемонтирует, делает только компонент Map
.
Компонент Map просто отображает div, который ссылается на карту mapbox-gl-js (например, https://gist.github.com/tristen/5c4b346ae38892f732504e6785d87057#file-map-js)
Что может заставить мой компонент перемонтировать себя таким образом?
Спасибо!