reactjs - 从 MapContainer 外部渲染 Map 子节点
问题描述
我想<MapContainer>
从初始外部渲染一个孩子MapContainer
。这有可能吗?
在 react-leaflet-v3 中,我通过引用传递地图对象来在地图上渲染很多项目。但是对于我目前的情况,我希望根据路由在地图顶部呈现一个反应按钮。
一种方法是<Route />.
在 MapContainer 中添加嵌套。然而,由于分散的路线行为,这并不理想......
有可能以另一种方式吗?
解决方案
我使用门户的方式来解决我的问题:
在我的地图容器中,发生了这种情况:
const [control, setControl] = useState(null);
const handleRef = useCallback((instance) => setControl(instance), [
setControl,
]);
...
<MapContainer ...>
...
<div className="mapcontrol-top-left" ref={handleRef}></div>
</MapContainer>
在一个完全不同的组件中,有条件地我想在地图上显示一些东西,我这样做(使用 Material-UI Portal & Fab 组件):
<Portal container={props.control}>
<Fab size="medium">
<EditIcon />
</Fab>
</Portal>
material-ui Portal 组件易于使用并增加了便利性,但原生的 React Portal 也能做到这一点......
推荐阅读
- javascript - Javascript动态替换正则表达式匹配
- linux - 在 Debian 11 (Bullseye) 上,docker 容器内的 /proc/self/cgroup 不显示 docker 信息
- amazon-web-services - 如何从其 ARN 中获取 AWS 角色的友好名称?
- apache - 多个网站,Apache 虚拟主机
- php - 用 PHP 求和数组
- java - 如何从 Spring Boot 项目的子表中检索数据?
- java - Playframework 自定义 CORSFilter 实现
- mysql - Node.JS Express 连接到 Mysql(都是 Docker) ECONNREFUSED
- python - 包括权重会导致模型(GLM)偏低?
- app-store - APP商店服务器到服务器通知定价