浏览代码

Maximum update depth exceeded fix

Viktoriia 13 小时之前
父节点
当前提交
81702b44de
共有 1 个文件被更改,包括 13 次插入7 次删除
  1. 13 7
      src/screens/InAppScreens/MapScreen/index.tsx

+ 13 - 7
src/screens/InAppScreens/MapScreen/index.tsx

@@ -953,13 +953,20 @@ const MapScreen: any = ({ navigation, route }: { navigation: any; route: any })
 
     setIsZooming(true);
 
-    const currentZoom = await mapRef.current.getZoom();
-    setZoom(currentZoom);
+    const newZoom = await mapRef.current.getZoom();
+    const newCenter = await mapRef.current.getCenter();
 
-    if (mapRef.current) {
-      const currentCenter = await mapRef.current?.getCenter();
-      setCenter(currentCenter);
-    }
+    setZoom((prevZoom) => {
+      if (prevZoom !== newZoom) return newZoom;
+      return prevZoom;
+    });
+
+    setCenter((prevCenter) => {
+      if (!prevCenter || prevCenter[0] !== newCenter[0] || prevCenter[0] !== newCenter[0]) {
+        return newCenter;
+      }
+      return prevCenter;
+    });
   };
 
   const onMapPress = async (event: any) => {
@@ -1439,7 +1446,6 @@ const MapScreen: any = ({ navigation, route }: { navigation: any; route: any })
         attributionEnabled={false}
         onPress={onMapPress}
         onRegionDidChange={handleRegionDidChange}
-        onRegionIsChanging={handleMapChange}
         onRegionWillChange={_.debounce(handleMapChange, 200)}
         onDidFinishLoadingStyle={() => setDidFinishLoadingStyle(true)}
       >