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

react-map-gl Map组件未传递access_token问题求助

解决Next.js中react-map-gl 7.0地图不显示(access_token为no-token)的问题

首先明确:react-map-gl 7.0目前处于活跃维护状态,并未停用,你的问题大概率出在配置或参数传递环节,以下是针对性排查解决步骤:

1. 规范Next.js环境变量配置

Next.js仅会将前缀为NEXT_PUBLIC_的环境变量暴露给客户端代码,按以下要求检查:

  • .env.local文件必须放在项目根目录(与package.json同级)
  • 文件内变量定义格式正确:
    NEXT_PUBLIC_MY_MAPBOX_API_TOKEN=你的Mapbox令牌内容
    
  • 修改环境变量后重启Next.js开发服务器(环境变量不支持热加载)

2. 确保Map组件正确接收accessToken参数

react-map-gl 7.0的Map组件必须显式传入accessToken属性,不能依赖默认值。如果是Next.js 13+的App Router,组件还需添加客户端渲染指令,示例代码如下:

'use client'; // App Router下必须添加,确保组件在浏览器端渲染
import { Map } from 'react-map-gl';

export default function MapView() {
  return (
    <div style={{ width: '100%', height: '500px' }}>
      <Map
        initialViewState={{
          longitude: -122.4194,
          latitude: 37.7749,
          zoom: 12
        }}
        mapStyle="mapbox://styles/mapbox/streets-v12"
        accessToken={process.env.NEXT_PUBLIC_MY_MAPBOX_API_TOKEN} // 变量名需与.env.local中的完全一致
      />
    </div>
  );
}

3. 排查缓存与令牌权限问题

  • 清除浏览器缓存,或用隐身模式打开页面,避免旧环境变量缓存干扰
  • 登录Mapbox控制台,检查你的令牌是否启用了Styles和Tiles权限(这是加载地图的必要权限)

4. 验证依赖安装正确性

确保已安装对应版本的依赖包:

npm install react-map-gl@7 mapbox-gl

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:41:04