Как обновлять геообъект в ymaps без перезагрузки страницы
Как сделать, чтобы в зависимости от переменной pt обновлялось значение present в placemark(оно не работает с этим кодом) и метка обновляла цвет без перезагрузки страницы?
import React, { useState, useEffect } from 'react';
import ymaps from 'ymaps';
function MapComponent() {
const [variable, setVariable] = useState('');
useEffect(() => {
fetch('variable.txt')
.then(response => response.text())
.then(data => setVariable(data));
}, []);
const [pt, setPt] = useState('');
useEffect(() => {
if (variable <= 0) {
setPt('islands#greenCircleDotIcon')
} else if (variable > 0 && variable <= 60) {
setPt('islands#yellowCircleDotIcon')
} else if (variable > 60) {
setPt('islands#redCircleDotIcon')
}
}, [variable]);
const [map, setMap] = useState(null);
useEffect(() => {
ymaps.load().then((ymaps) => {
const map = new ymaps.Map('map', {
center: [55.160682, 61.299485],
zoom: 10,
});
setMap(map);
const placemark = new ymaps.Placemark([55.160682, 61.299485], null, {
preset: pt
});
map.geoObjects.add(placemark);
});
}, []);
return (
<div>
<div id="map" style={{ width: '100%', height: '100vh' }}></div>
</div>
);
}
export default MapComponent;
Ответы (1 шт):
Автор решения: Виктор Карев
→ Ссылка
Так ведь системе нужно знать, у какого placemark менять. А собственно менять preset просто:
placemark.options.set('preset',newPt);