0

我使用'react-google-maps'

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

最奇怪的是GoogleMap卸载了。我认为 GoogleMap 应该重新渲染。然后我可以shouldComponentUpdate()用来防止 GoogleMap 重新渲染。但是当我使用与 GoogleMap 无关的状态设置状态时,它会触发卸载。

GoogleMapDOMrender函数中声明,并GoogleMapDOM在html中使用''。我认为它是由在声明中引起GoogleMapDOMrender。我会看看。

渲染函数片段()

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 />
  )});

有人可以帮助我吗?谢谢。

4

0 回答 0