Dom Here Maps的标记不显示react渲染的内容
Dom Marker of Here Maps does not display the content which rendered by react
这段代码工作正常:
const div = document.createElement('div');
div.innerHTML = 'abc';
this.marker = new H.map.DomMarker(PositionToLatLng(position), {
icon: new H.map.DomIcon(div),
});
虽然此代码不显示任何内容:
const div = document.createElement('div');
ReactDOM.render('abc', div);
this.marker = new H.map.DomMarker(PositionToLatLng(position), {
icon: new H.map.DomIcon(div),
});
DomMarker(DomIcon) 应该显示任何 HTMLElement,无论它是由 DOM api 创建的还是由 react 呈现的。
我一直在使用 renderToStaticMarkup
并将子组件嵌套在其中。
import { renderToStaticMarkup } from 'react-dom/server';
// lifecycle method
const html = renderToStaticMarkup(children);
const icon = new window.H.map.DomIcon(html);
this.marker = new window.H.map.DomMarker({ lat, lng }, { icon });
注意:这是服务器端呈现的。
https://reactjs.org/docs/react-dom-server.html#rendertostring
如果您对 DomIcon 特别感兴趣,他们的文档有一个非常好的代码示例:
https://developer.here.com/documentation/maps/topics_api/h-map-domicon.html
这段代码工作正常:
const div = document.createElement('div');
div.innerHTML = 'abc';
this.marker = new H.map.DomMarker(PositionToLatLng(position), {
icon: new H.map.DomIcon(div),
});
虽然此代码不显示任何内容:
const div = document.createElement('div');
ReactDOM.render('abc', div);
this.marker = new H.map.DomMarker(PositionToLatLng(position), {
icon: new H.map.DomIcon(div),
});
DomMarker(DomIcon) 应该显示任何 HTMLElement,无论它是由 DOM api 创建的还是由 react 呈现的。
我一直在使用 renderToStaticMarkup
并将子组件嵌套在其中。
import { renderToStaticMarkup } from 'react-dom/server';
// lifecycle method
const html = renderToStaticMarkup(children);
const icon = new window.H.map.DomIcon(html);
this.marker = new window.H.map.DomMarker({ lat, lng }, { icon });
注意:这是服务器端呈现的。
https://reactjs.org/docs/react-dom-server.html#rendertostring
如果您对 DomIcon 特别感兴趣,他们的文档有一个非常好的代码示例:
https://developer.here.com/documentation/maps/topics_api/h-map-domicon.html