-
Notifications
You must be signed in to change notification settings - Fork 97
Open
Description
По событию onCameraPositionChangeEnd перерисовываю список маркеров на карте, приложение крашится с ошибкой Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
Проблема только на iOS. Приложил файл с логом ошибки из Xcode. Версия RN 0.76.5, в режиме новой архитектуры.
const getCurrentPosition = () => {
return new Promise<CameraPosition>(resolve => {
if (mapRef.current) {
mapRef.current.getCameraPosition(position => {
resolve(position);
});
}
});
};
const handleOnCameraPositionChangeEnd = async () => {
const position = await getCurrentPosition();
const distance = await getScaleBarInfoFromZoomLevel(
position.zoom,
position.point.lat,
).resolution;
const params: IGetFilialsParams = {
lat: position.point.lat,
lon: position.point.lon,
radius: distance,
limit: 0,
};
await mapModel.getShopsListCall(params);
};
<YaMap
ref={mapRef}
userLocationIcon={USER_MARKER}
userLocationIconScale={0.5}
initialRegion={{
lat: profileLocation.latitude,
lon: profileLocation.longitude,
zoom: 10,
}}
onMapPress={() => {
mapModel.searchField.setFocused(false);
selectFilial(null);
mapModel.filialsBottomSheetRef.current?.snapToIndex(0);
Keyboard.dismiss();
}}
onCameraPositionChangeEnd={handleOnCameraPositionChangeEnd}
style={{
flex: 1,
width: '100%',
}}>
{mapModel.shopsList.map(el => {
const selectedStyle = el.id === selectedFilial?.id ? 3 : 2;
return (
<Marker
key={el.id}
scale={selectedStyle}
visible
source={USER_MARKER}
onPress={() => {
selectFilial(el);
mapModel.showFilialSheet();
}}
point={{lat: el.location.latitude, lon: el.location.longitude}}
/>
);
})}
</YaMap>
Metadata
Metadata
Assignees
Labels
No labels