You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用@react-google-maps/api添加TrafficLayer触发b/369845599错误崩溃

问题分析与修复方案

错误b/369845599是Google Maps JavaScript API的内部错误,结合你仅添加TrafficLayer时触发崩溃的情况,大概率是API加载配置缺失、库版本兼容问题或组件使用时机不当导致的,以下是具体排查和修复步骤:

1. 确认Google Maps API加载时包含Traffic库

TrafficLayer依赖Maps JavaScript API的traffic库扩展,必须在加载API时显式声明该库:

import { LoadScript, GoogleMap, TrafficLayer } from '@react-google-maps/api';

// 在LoadScript组件中指定libraries参数
<LoadScript
  googleMapsApiKey="你的API密钥"
  libraries={["traffic", "directions"]} // 必须包含"traffic"
>
  <GoogleMap mapContainerStyle={mapContainerStyle} zoom={12} center={defaultCenter}>
    {/* 你的Marker、DirectionsRenderer等组件 */}
    {showTrafficLayer && <TrafficLayer />}
  </GoogleMap>
</LoadScript>

如果之前未添加libraries={["traffic"]},API无法加载TrafficLayer所需资源,就会触发该错误。

2. 检查@react-google-maps/api版本兼容性

部分旧版本的@react-google-maps/api与最新Google Maps JS API存在适配问题,尝试升级到最新稳定版:

npm install @react-google-maps/api@latest
# 或 yarn add @react-google-maps/api@latest

若升级后问题依旧,可尝试降级到已知兼容的版本(比如^2.19.0)再测试。

3. 确保TrafficLayer在地图初始化完成后渲染

如果TrafficLayer在地图实例未完全初始化时就被渲染,可能触发内部错误。可通过GoogleMap的onLoad回调控制渲染时机:

import { useState } from 'react';
import { GoogleMap, TrafficLayer } from '@react-google-maps/api';

const [mapReady, setMapReady] = useState(false);

// ...

<GoogleMap
  mapContainerStyle={mapContainerStyle}
  zoom={12}
  center={defaultCenter}
  onLoad={() => setMapReady(true)} // 地图初始化完成后标记状态
>
  {/* 其他组件 */}
  {showTrafficLayer && mapReady && <TrafficLayer />}
</GoogleMap>

4. 验证API密钥的权限配置

再确认以下两点权限配置:

  • 确保Google Cloud控制台中,你的API密钥已绑定Maps JavaScript API(TrafficLayer属于该API功能,无需单独启用Traffic API);
  • 检查密钥是否设置了IP/域名限制,若有限制,确保当前开发环境的IP/域名在允许列表内。

5. 排除组件冲突

暂时注释掉DirectionsRenderer组件,仅保留TrafficLayer测试是否还会崩溃。若此时正常,说明两个组件渲染存在冲突,可尝试调整TrafficLayer的渲染优先级,或通过状态控制两者不同时渲染(一般不会出现此情况,仅作排查用)。


内容的提问来源于stack exchange,提问作者CreazyBoyxD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 13:53:14