代码之家  ›  专栏  ›  技术社区  ›  Hsueh-Jen

如何在状态更新后停止重新装载地图组件(react google maps)

  •  0
  • Hsueh-Jen  · 技术社区  · 6 年前

    我用“谷歌地图”

    在我的页面中有一些复选框和一个GoogleMap组件。 单击复选框后更新反应状态时。GoogleMap将卸载并再次装载。GoogleMap不使用复选框更改的状态。但谷歌地图仍在重新上架。

    最奇怪的是谷歌地图卸载。我认为谷歌地图应该重新渲染。那我可以用 shouldComponentUpdate() 防止GoogleMap重新渲染。但当我用与GoogleMap无关的state设置state时,它会触发unmount。

    GoogleMapDOM render 函数,我使用 谷歌地图 谷歌地图 . 我去看看。

    render函数()的片段

    const GoogleMapDOM = compose(
      withProps({
        googleMapURL: googleApiUrl,
        loadingElement: <div style={{ height: `100%` }} />,
        containerElement:<div style={{ height: 600, width: 800 }} />,
        mapElement: <div style={{ height: `100%` }} />,
      }),
      withStateHandlers(() => ({
        isInfoWindowOpen: [],
      }), {
        onToggleOpen: ({ isInfoWindowOpen }) => () => ({
          isInfoWindowOpen: !isInfoWindowOpen,
        })
      }),
      lifecycle({
        componentWillReceiveProps(nextProps) {
          console.log('componentWillReceiveProps')
        },
      }),
      withScriptjs,
      withGoogleMap
    )((props) => {
      return (
      <GoogleMap>
        {/* The code is omitted */}
      <GoogleMap />
      )});
    

    有人能帮我吗?谢谢。

    0 回复  |  直到 6 年前
    推荐文章