У меня есть приложение React, в котором я использую Leaflet через react-leaflet, обе суперполезные библиотеки.
В этом приложении у меня есть группа координат, которые необходимо отобразить следующим образом:
При уменьшении масштабируйте координаты в кластеры маркеров, например,
При увеличении каждый маркер должен иметь
Для кластеризации я использую плагин response-leaflet-markercluster, который работает отлично подходит для показа статического контента.
Но когда мне нужно показать какой-либо динамический контент в каждом маркере, у меня нет возможности отправить JSX
, есть только положение для статического HTML, как видно из доступного примера здесь.
// Template for getting popup html MarkerClusterGroup
// IMPORTANT: that function returns string, not JSX
function getStringPopup(name) {
return (`
<div>
<b>Hello world!</b>
<p>I am a ${name} popup.</p>
</div>
`);
}
// that function returns Leaflet.Popup
function getLeafletPopup(name) {
return L.popup({ minWidth: 200, closeButton: false })
.setContent(`
<div>
<b>Hello world!</b>
<p>I am a ${name} popup.</p>
</div>
`);
}
Есть ли способ справиться с этой ситуацией? Как я могу сделать маркер JSX вместо статического маркера HTML?
PS: Я пробовал использовать ReactDOM.renderToString
уже, но это уродливый хакер и каждый раз требует повторного рендеринга маркеров.
ТИА !!
Вот образец WebpackBin, с которым можно поиграть, если у вас есть решение.
renderToString
как решение. Я хочу использовать здесь JSX, а не статический HTML - person nikjohn   schedule 30.10.2017.innerHTML
? - person Vlad   schedule 30.10.2017