1

我正在制作一个应用程序,其中有一个 Overlay 组件和一个 Map 组件在它后面渲染,就像这样:

<div>
   {showOverlay && <Overlay />}
   <Map /> // this component should mount once
</div>

显示叠加层是为了让地图在下面加载,但是当我删除叠加层(在此处将 showOverlay 设置为 false)时,Map组件会重新加载。

起初我以为Map组件只是重新渲染,但经过一番挖掘后,我发现组件实际上正在重新安装。

如果我登录componentWillMount,componentWillUnmountrender方法,则日志按该顺序显示(这似乎是矛盾的)

render
willUnmount
willMount

父级不会重新安装,只有Map组件会。

Map 组件只是渲染一个引用 mapbox-gl-js 地图的 div(像这样https://gist.github.com/tristen/5c4b346ae38892f732504e6785d87057#file-map-js

什么会导致我的组件像这样重新安装自己?

谢谢 !

4

0 回答 0