Листовка React, показывающая непредвиденную ошибку токена createRef в примере

Я использую пример реагирующей листовки events.js из github и получаю следующую ошибку:

Syntax error: Unexpected token (23:26)

  21 |   }
  22 | 
> 23 |   mapRef = createRef<Map>()
     |                           ^
  24 | 
  25 |   handleClick = () => {
  26 |     const map = this.mapRef.current

Я изменил строку импорта в events.js на

import { Map, TileLayer, Marker, Popup } from 'react-leaflet';

и мой App.js выглядит так:

import React, { Component } from 'react';
import './App.css';
import './myLeaflet.css';
import './leaflet.css';

import SimpleExample from './simple';
import TooltipExample from './tooltip';
import DraggableExample from './draggable-marker';
import WMSTileLayerExample from './wms-tile-layer';
import EventsExample from './events';
class App extends Component {
  render() {
    return (
      <div className="App">
          <EventsExample/>
      </div>
    );
  }
}

export default App;

myLeaflet.css содержит это:

h1, h2, p {
  text-align: center;
}
.leaflet-container {
  height: 400px;
  width: 80%;
  margin: 0 auto;
}

есть идеи, почему это происходит?


person DevB2F    schedule 15.05.2019    source источник
comment
react-leaflet использует библиотеку Flow для проверки типов. Так что либо установите его и используйте mapRef = createRef<Map>(), либо просто используйте mapRef = createRef()   -  person kboul    schedule 15.05.2019


Ответы (3)


import React, { Component, createRef } from 'react';

вы должны import createRef из библиотеки реагирования и использовать mapRef = createRef()

https://github.com/PaulLeCam/react-leaflet/blob/master/example/components/draggable-marker.js

person Nicolay Guzman    schedule 13.11.2019

У меня такая же проблема. сдача

mapRef = createRef<Map>()

to:

mapRef = createRef();

и теперь это работает. удачи

person Citizen-Dror    schedule 27.01.2020

это ошибка с

mapRef = createRef();

изменить его на

const mapRef = createRef<any>()
person Sergey    schedule 24.04.2020