我使用'react-google-maps'
我的页面中有一些复选框和一个 GoogleMap 组件。当我单击复选框后更新反应状态时。GoogleMap 将卸载并再次安装。GoogleMap 不使用由复选框更改的状态。但谷歌地图仍然重新安装。
最奇怪的是GoogleMap卸载了。我认为 GoogleMap 应该重新渲染。然后我可以shouldComponentUpdate()
用来防止 GoogleMap 重新渲染。但是当我使用与 GoogleMap 无关的状态设置状态时,它会触发卸载。
我GoogleMapDOM
在render
函数中声明,并GoogleMapDOM
在html中使用''。我认为它是由在声明中引起GoogleMapDOM
的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 />
)});
有人可以帮助我吗?谢谢。