【发布时间】:2020-10-27 04:15:50
【问题描述】:
我正在使用 React 和 react-google-maps,我想以不同的缩放级别显示不同的组件。这些组件就像不同的数据层。 我想把代码写成这样:
<GoogleMap
ref={this.ref}
onZoomChanged={this.zoomHandler}
>
{ this.state.showComponent1 && <Component1 /> }
{ this.state.showComponent2 && <Component2 /> }
</GoogleMap>
我这样做的方式是,我的 zoomHandler 函数将检查地图的缩放级别,然后一旦它通过某个点,我想切换正在查看的组件。
zoomHandler() {
...
// If zoom level is >= 13, then change component view
const zoom = this.ref.current.getZoom();
const bool1 = zoom >= 13;
if (this.state.showComponent1 !== bool1) {
this.setState({ showComponent1: bool1, showComponent2: !bool1 });
}
...
}
问题是我必须调用 setState,它会重新渲染整个地图。有没有办法让我有一个平滑的过渡,旧组件会淡出,新组件会进来?这些组件是相当静态的,所以没有很多更新。或者是否有不同的地图库可以使这变得容易? 这是图书馆:https://www.npmjs.com/package/react-google-maps
【问题讨论】:
标签: javascript reactjs google-maps react-google-maps