Dom Marker Here Maps не отображает контент, который отреагировал - PullRequest
0 голосов
/ 18 октября 2019

Этот код работает нормально:

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 или визуализированпо реакции.

1 Ответ

1 голос
/ 18 октября 2019

Я использовал 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

...