как остановить повторное монтирование компонента карты после обновления состояния (response-google-maps) - PullRequest
0 голосов
/ 28 августа 2018

Я использую «реагировать-Google-карты"

На моей странице есть несколько флажков и один компонент GoogleMap. Когда я обновляю состояние реакции после того, как я нажимаю флажок. 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 />
  )});

Может кто-нибудь мне поможет? Благодаря.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...