「react-google-maps」を使用しています
私のページにはいくつかのチェックボックスと 1 つの GoogleMap コンポーネントがあります。チェックボックスをクリックした後に反応状態を更新すると。GoogleMap がアンマウントされ、再度マウントされます。GoogleMap は、チェックボックスによって変更される状態を使用しません。しかし、GoogleMap はまだ再マウントされています。
最も奇妙なのは、GoogleMap がアンマウントされることです。GoogleMap を再レンダリングする必要があると思います。次にshouldComponentUpdate()
、GoogleMap の再レンダリングを防ぐために使用できます。しかし、GoogleMap に関係のない状態で setState を設定すると、unmount がトリガーされます。
関数内で宣言GoogleMapDOM
し、html では '' のように使用します。で宣言することが原因だと思います。確認してみるよ。render
GoogleMapDOM
GoogleMapDOM
render
render function() のスニペット
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 />
)});
誰かが私を助けることができますか?ありがとう。