Маркер не рендеринг на первой карте TAP-только появляется только после второго TAP, Zoom или любого взаимодействия (ExpoIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Маркер не рендеринг на первой карте TAP-только появляется только после второго TAP, Zoom или любого взаимодействия (Expo

Сообщение Anonymous »

Я сталкиваюсь с странным поведением с компонентом Marker в react-national-maps при динамическом добавлении маркеров. /> Но если я выполняю любое взаимодействие после < /strong>-Zoom, Pan, снова нажмите, открою Fab Menu и т. Д.-тогда маркер внезапно вызывает ожидаемое. /> setup
  • expo sdk : ~ 53.0.20
  • React native : 0.79.5
  • react> react> reAct> reAct-natain-map-map-nate-map-natain-map-natabit-map-natain-map-natabity-map-natabity-map-nataint-map-nataint-map-native-natabity> 1.20.1 < /code> < /li>
    < /ul>

    Hook & Haundlers < /strong> < /h3>

    Код: Выделить всё

    const [markersOnEdit, setMarkersOnEdit] = useState([]);
    const [principalMarker, setPrincipalMarker] = useState(null);
    
    const handleMapPress = (event: MapPressEvent) => {
    setPrincipalMarker({
    latitude: event.nativeEvent.coordinate.latitude,
    longitude: event.nativeEvent.coordinate.longitude,
    });
    };
    
    const addNewMarker = () => {
    if (!principalMarker) return;
    
    const epsilon = 0.00001;
    const alreadyExists = markersOnEdit.some(
    (m) =>
    Math.abs(m.latitude - principalMarker.latitude) < epsilon &&
    Math.abs(m.longitude - principalMarker.longitude) < epsilon
    );
    
    if (alreadyExists) {
    // This is for forcing rendering
    setMarkersOnEdit((prev) => [...prev]);
    setPrincipalMarker({ ...principalMarker });
    return;
    }
    
    const newMarker: EditablePoint = {
    id: generateId(),
    latitude: principalMarker.latitude,
    longitude: principalMarker.longitude,
    };
    
    setMarkersOnEdit((prev) => [...prev, newMarker]);
    setPrincipalMarker(null);
    };
    < /code>
    
      mapview + маркерный рендеринг < /strong> < /h3>
    
    
    {principalMarker !== null && (
    
    )}
    
    {markersOnEdit.map((point) => (
    
    ))}
    
    < /code>
    
      ожидаемое < /strong> < /h3>
    Как только я установил принцип < /code>, он должен мгновенно отображать. случается. < /p>
    
      попробовал до сих пор < /strong> < /h3>
    
     Проверьте обновления состояния с помощью консоли.{ ...marker }
    ) или массивы клонирования
  • Пробуя вызовать SetTimeout (() => setPrincipalmarker (...), 0)
  • Пробое Mapref.current? .forceUpdate ();
/> Вопросы [/b]

[*] Это ошибка с реагирующими-новыми картами 1.20.1 или Quirk с React 19/Expo SDK 53?
Есть ли какой-нибудь известный обмен на press> render Известный обручальный обход до на первом нажите strong> strong> strong> strong> strong> strong> strong> strong> strong> strong> strong> strong> strong> strong> map? /> Кто -нибудь испытывал подобные проблемы или нашел надежное исправление? < /li>
< /ul>
>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ap-zoom-or
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»