gpt4 book ai didi

reactjs - MapBox 无法在标记弹出窗口中添加 react 组件

转载 作者:行者123 更新时间:2023-12-04 08:38:40 49 4
gpt4 key购买 nike

我一直在从事一个房地产项目,但一直坚持在标记弹出窗口中添加一个 reactcomponent。
下图显示了弹出窗口的示例:
Popup example
这是我尝试在标记上添加弹出窗口的代码:

var card = <Card />
var popup = new mapboxgl.Popup({ offset: 25 })
.setDOMContent(ReactDOM.render(card, document.getElementById('map')))

var marker = new mapboxgl.Marker(el)
.setLngLat(coordinates)
.setPopup(popup)
.addTo(map);
setMarkers(markers => [...markers, marker])
我不断收到同样的错误:
Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.
请帮我!

最佳答案

setDOMContent 的预期参数类型是 Node ,但返回类型为 ReactDOM.renderComponent .
https://reactjs.org/docs/react-dom.html#render
https://docs.mapbox.com/mapbox-gl-js/api/markers/#popup#setdomcontent
在 React 中,使用 React.useRef.current引用 dom 内容。
https://reactjs.org/docs/hooks-reference.html#useref

const popupRef = React.useRef(null);
const popup = new mapboxgl.Popup({ offset: 25 })
.setDOMContent(popupRef.current);

return (
<>
<div id="map"></div>
<div ref={popupRef}>popup</div>
</>
);

关于reactjs - MapBox 无法在标记弹出窗口中添加 react 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64666141/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com