Skip to content

Краш при ререндере маркеров IOS #318

@JenyaIII

Description

@JenyaIII

По событию onCameraPositionChangeEnd перерисовываю список маркеров на карте, приложение крашится с ошибкой Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil' Проблема только на iOS. Приложил файл с логом ошибки из Xcode. Версия RN 0.76.5, в режиме новой архитектуры.

Log.txt

 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions