Я пытаюсь расширить компонент response-leaflet, чтобы добавить в него пользовательские переменные.
Мне нужно добавить «идентификатор» к ломаной линии (чтобы, когда пользователь нажимает на нее, я могу получить идентификатор и выполнить вызов сервера для сбора данных о нем). Мне пришлось проделать то же самое с маркерами и нашел обходной путь:
markers = nextProps.buses.map((bus, i) => {
let iconCustom = new L.Icon.Default({internalId: bus.internalId});
this.markersDirectAccess[bus.internalId] = {
...bus
};
return {
lat: bus.latitude,
lng: bus.longitude,
popup: bus.busId,
options: {icon: iconCustom}
}
});
Я не совсем уверен, что это правильно. Но я застрял, когда дело доходит до компонента Polyline. Я нашел этот ответ и хотел бы применить его к ответной листовке, но я не знаю, как сделай это. Это текущее состояние моего расширенного компонента:
import L from 'leaflet'
import { Polyline } from 'react-leaflet'
import PropTypes from 'prop-types';
export default class PolylineCustomId extends Polyline {
static propTypes = {
positions: PropTypes.array,
}
createLeafletElement (props: Object): Object {
return L.Polyline(props)
}
}