liaofang
2026-08-14 0c79afdcb9596aacf700d0ddec4d84cedf94226d
fix(begin-route): 修复弹窗组件导致地图视口跳变问题

- 弹窗组件外层增加 <View> 包裹,防止节点挂载卸载影响地图组件
- 避免弹窗与 <BeginRouteView> 中的 <Map> 连坐,防止地图重置 lat/lng/scale
- 保持弹窗 position:fixed,确保定位样式不受影响
- 添加注释说明弹窗与地图组件的布局关系和渲染逻辑
1个文件已修改
40 ■■■■■ 已修改文件
src/robotaxi/pages/begin-route/index.tsx 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/begin-route/index.tsx
@@ -1,4 +1,5 @@
import Taro, { useDidShow, useShareAppMessage } from "@tarojs/taro"
import { View } from '@tarojs/components';
import { useEffect, useState, useRef, useMemo,useCallback } from 'react';
import './index.less';
@@ -2653,23 +2654,28 @@
      <BeginRouteViewProvider value={beginRouteViewContextValue}>
        <BeginRouteView />
      </BeginRouteViewProvider>
      <ModifyDestinationFailPopup
        show={showModifyDestinationFailPopup}
        content={modifyDestinationFailMessage}
        onConfirm={handleAcknowledgeModifyDestinationFail}
      />
      <PickupExceptionPopup
        show={showPickupExceptionPopup}
        pickupExceptionInfo={pickupExceptionInfo}
        onClose={handleClosePickupExceptionPopup}
        onConfirm={handleConfirmPickupExceptionNavigation}
      />
      <CreditPayPopup
        show={showCreditPayPopup}
        onClose={handleCloseCreditPayPopup}
        onConfirm={handleConfirmCreditPayPopup}
      />
      <TripFinishedFireworks tripStatus={tripStatus} />
      <View>
        {/* 与 BeginRoutePopupArea 同理:以下弹窗组件隐藏时 return null,节点挂载/卸载
            不再连坐 <BeginRouteView> 中的 <Map>,避免 map 全量重应用 lat/lng/scale
            导致视口跳变。所有弹窗均为 position:fixed,外层 View 不影响定位。 */}
        <ModifyDestinationFailPopup
          show={showModifyDestinationFailPopup}
          content={modifyDestinationFailMessage}
          onConfirm={handleAcknowledgeModifyDestinationFail}
        />
        <PickupExceptionPopup
          show={showPickupExceptionPopup}
          pickupExceptionInfo={pickupExceptionInfo}
          onClose={handleClosePickupExceptionPopup}
          onConfirm={handleConfirmPickupExceptionNavigation}
        />
        <CreditPayPopup
          show={showCreditPayPopup}
          onClose={handleCloseCreditPayPopup}
          onConfirm={handleConfirmCreditPayPopup}
        />
        <TripFinishedFireworks tripStatus={tripStatus} />
      </View>
      {/* 转场动效调试面板 — 固定在地图上方,始终可见(临时开启,调试完成后请重新注释) */}
      {/* <DebugTransitionPanel
        orderId={orderId}