微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mapbox 和 CSS Grid - Mapbox 不会在调整窗口大小时自动扩展

如何解决Mapbox 和 CSS Grid - Mapbox 不会在调整窗口大小时自动扩展

我的 mapBox 容器在调整窗口大小时无法自动调整大小,我遇到了问题。
在初始加载时,mapBox 容器会正确渲染到适用的容器大小,只是在调整窗口大小时不会。

结构相当简单: 我创建了一个带有 2 个子 div(地图和列表)的网格容器。

.container {
  display: grid;
  grid-template-areas: "map map list";
  height: 100vh;
  grid-template-columns: 1fr 1fr 500px;
}

.map {
  grid-area: map;
  background-color: red;
}

.list {
  grid-area: list;
  background-color: yellow;
}

React / Nextjs 页面

import * as React from "react";
import { useState } from "react";
import ReactMapGL from "react-map-gl";
import styles from "../styles/Home.module.css";

const MAPBox_TOKEN =
  "YOUR OWN TOKEN";

export default function Index() {
  const [viewport,setViewport] = useState({
    width: "100%",height: "100%",latitude: 37.7577,longitude: -122.4376,zoom: 8
  });
  return (
    <div className={styles.container}>
      <div className={styles.map}>
        <ReactMapGL
          {...viewport}
          onViewportChange={(nextViewport) => setViewport(nextViewport)}
          mapBoxApiAccesstoken={MAPBox_TOKEN}
          mapStyle="mapBox://styles/mapBox/dark-v9"
        />
      </div>
      <div className={styles.list}>List Container</div>
    </div>
  );
}

我尝试过使用 flexBox 但没有成功。我也更新了视口状态的宽高,没有区别。

相反,如果我使用 Google Maps 而不是 MapBox,那么地图容器可以完美运行,并且 Google Maps 的大小会根据窗口大小调整。

这里有一个最小的复制工作示例: https://codesandbox.io/s/xenodochial-waterfall-l6p03?file=/styles/Home.module.css

如果您能帮助解决此问题,我们将不胜感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。