react-native-yamap
react-native-yamap copied to clipboard
Как выполнить fitAllMarkers() и fitMarkers() при инициализации карты?
Здравствуйте. Спасибо за библиотеку.
У меня проблема с методами fitAllMarkers() и fitMarkers().
Я хочу при инициализации карты установить несколько маркеров и подобрать положение камеры, чтобы вместить указанные маркеры на ней.
Я использую для этого методы fitAllMarkers() и fitMarkers() внутри метода жизненного цикла useEffect при монтировании компонента с моей картой.
export const PlacesMap: FC<Props> = ({ city, style }) => {
const { places } = city;
const mapRef = useRef<YaMap>(null);
useEffect(() => {
mapRef.current?.fitAllMarkers();
}, []);
return (
<YaMap style={style} ref={mapRef}>
{places.map((place) => (
<Marker key={place.id} point={{ lat: place.lat, lon: place.lon }} />
))}
</YaMap>
);
};
С одним маркером этот код работает отлично но если маркеров больше то происходит ошибка:
Можно переписать код и использовать эти методы внутри onMapLoaded но тогда происходит эффект с отображением полной карты и затем анимировананное позиционирование к нужным координатам на карте. Это создает неприятный пользовательский опыт.
Кто то сталкивался с такой проблемой? Есть ли решения?
Не помню нужен ли первый useEffect, ваш случай useEffect который ниже