Полилиния листовки React со стрелкой — проблемы

#reactjs #leaflet

#reactjs #листовка

Вопрос:

Я использую листовку react. Я пытаюсь реализовать это с помощью полилинии со стрелкой.

отображается следующая ошибка.

1.Ошибка типа: не удается прочитать свойство ‘addLayer’ неопределенного значения при t.n.componentDidMount (MapLayer.js: 40) 2.Ошибка типа: не удается прочитать свойство ‘leafletElement’ неопределенного значения при.value (Polyline.js:8) 3.Ошибка типа: не удается прочитать свойство ‘removeLayer’ неопределенного значения при t.n.componentWillUnmount (MapLayer.js: 61)

здесь я добавляю свой Maplayer.js и Polyline.js также

MapLayer.js

 import type { Layer } from 'leaflet'
import React, { Fragment } from 'react'

import { LeafletProvider } from './context'
import MapComponent from './MapComponent'
import type { LeafletContext, MapLayerProps } from './types'

export default class MapLayer<LeafletElement: Layer,Props: MapLayerProps,>     
extends MapComponent<LeafletElement, Props> {
  contextValue: ?LeafletContext
   leafletElement: LeafletElement

 constructor(props: Props) {
 super(props)
 this.leafletElement = this.createLeafletElement(props)
}


get layerContainer(): Layer {
return this.props.leaflet.layerContainer || this.props.leaflet.map
 }

createLeafletElement(_props: Props): LeafletElement {
 throw new Error('createLeafletElement() must be implemented')
}

updateLeafletElement(_fromProps: Props, _toProps: Props) {}

componentDidMount() {
super.componentDidMount()
this.layerContainer.addLayer(this.leafletElement)
}

componentDidUpdate(prevProps: Props) {
super.componentDidUpdate(prevProps)

if (this.props.attribution !== prevProps.attribution) {
  const { map } = this.props.leaflet
  if (map != null amp;amp; map.attributionControl != null) {
    map.attributionControl.removeAttribution(prevProps.attribution)
    map.attributionControl.addAttribution(this.props.attribution)
  }
}

this.updateLeafletElement(prevProps, this.props)
}

componentWillUnmount() {
super.componentWillUnmount()
this.layerContainer.removeLayer(this.leafletElement)
}

 render() {
  const { children } = this.props
  if (children == null) {
   return null
 }
  return this.contextValue == null ? (
  <Fragment>{children}</Fragment>
   ) : (
  <LeafletProvider value={this.contextValue}>{children}</LeafletProvider>
  )
  }
 }
  

Polyline.js

 import React from 'react'
import { Polyline } from 'react-leaflet'
import 'leaflet-arrowheads'

class ArrowheadsPolyline extends React. Component{

 componentDidMount(){
  const polyline = this.polylineRef.leafletElement
  if (this.props.arrowheads){
     polyline.arrowheads(this.props.arrowheads)
     polyline._update()
  }
 }
 componentWillUnmount(){
  if (this.props.arrowheads){
     const polyline = this.polylineRef.leafletElement
     polyline.deleteArrowheads()
  }
  }
  render(){
  return(
     <Polyline {...this.props} ref={polylineRef => this.polylineRef = polylineRef} />
  )
  }

}


export default ArrowheadsPolyline
  

и мой компонент map похож

 <Map <Polyline positions={ [coordinates] } arrowheads /> />
  

Если у вас, ребята, есть какие-либо идеи, пожалуйста, дайте мне знать