Некоторое время я использовал исходный пакет react-google-maps
, но понял, что он не обновлялся пару лет, поэтому я установил обновленный пакет под названием react-google-maps/api
. В обоих пакетах есть компонент под названием <GoogleMap/>
, но в старом пакете есть свойство, которое вы можете передать ему, под названием defaultCenter
. Объявление этого свойства приведет к тому, что при монтировании компонента карты это значение будет центром, но не изменит центр при повторной визуализации компонента. В этом новом пакете есть только свойство с именем center
, и карта будет go возвращаться к этому значению при каждом повторном рендеринге. Вот код, иллюстрирующий мою проблему:
import { GoogleMap, LoadScript } from '@react-google-maps/api'
function App() {
const [someState, setSomeState] = useState(false);
return (
<div className="App">
<button className="" onClick={() => {someState ? setSomeState(false) : setSomeState(true)}}>Click</button>
<LoadScript
id="script-loader"
googleMapsApiKey=""
>
<GoogleMap
id='example-map'
mapContainerStyle={{
height: '900px',
width: '900px'}}
center={{lat:41, lng: -71}}
zoom={4}
>
</GoogleMap>
</LoadScript>
</div>
);
}
export default App;
вот что происходит:
1) Страница загружается в указанный центр
2) Я перетаскиваю карту в другое место
3) Я нажимаю кнопка, которая изменяет состояние
4) Карта перезагружается обратно в исходный центр
как я могу заставить карту оставаться в ее текущем местоположении, когда я нажимаю кнопку, которая устанавливает состояние?