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

从 MapContainer 外部渲染 Map 子项

如何解决从 MapContainer 外部渲染 Map 子项

我想从初始 <MapContainer> 外部渲染 MapContainer 内部的孩子。这有可能吗?

在 react-leaflet-v3 中,我通过引用传递地图对象在地图上渲染了很多项目。但是对于我目前的情况,我想根据路由在地图顶部呈现一个反应按钮。

这样做的一种方法是在 MapContainer 中添加嵌套 <Route />.。然而,由于分散的路线行为,这并不理想......

有其他可能吗?

解决方法

我使用门户方式解决了我的问题:

在我的地图容器中,这是发生的:

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 也会点他的技巧......

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