2
我試圖擴展一個反應傳單組件,所以我可以添加自定義變量。React-leaflet自定義組件,如何從Leaflet擴展Polyline?
我需要給Polyline添加一個「id」(所以當用戶點擊它時,我可以檢索id並在後面調用服務器來收集數據)。我不得不爲標記做同樣的,發現這個解決方法:
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組件時,我被卡住了。 我發現this answer,我想將它應用於反應傳單,但我不知道如何去做。這是我擴展組件的當前狀態:
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)
}
}
這奏效了!我仍然想知道如何使用react-leaflet的反應生命週期來擴展一個傳單組件,但我會接受這個作爲答案,因爲它的工作原理:) – Clafou