Значок пользовательского маркера не работает

Я использую реактивную листовку и хочу создать собственный значок маркера. React-leaflet может принимать объект Leaflet.Icon для отображения пользовательского значка маркера. Итак, я NPM установил листовку и добавил import { L } from 'leaflet';.

Затем я добавил:

const FPIcon = L.Icon.extend({
  options: {
    iconSize: [38, 95],
    iconAnchor: [22, 94],
    popupAnchor: [-3, -76]
  }
});

const purpleIcon = new FPIcon({
          iconUrl: '%PUBLIC_URL%/markers/Bar-Marker.png'
        });

к моему методу рендеринга.

Но я продолжаю получать следующую ошибку Cannot read property 'Icon' of undefined.

Чтобы создать собственный значок маркера, я также пробовал следующее:

const purpleIcon = L.icon({
    iconUrl: '%PUBLIC_URL%/markers/Bar-Marker.png',
    iconSize: [38, 95],
    iconAnchor: [22, 94],
    popupAnchor: [-3, -76]
});

но снова получил Cannot read property 'icon' of undefined ошибку.

Есть идеи о том, что я делаю неправильно?


person JL9    schedule 06.10.2017    source источник
comment
Во втором примере скобки закрыты неправильно, удалите } в конце. И что произойдет, если вы используете URL-адрес типа unpkg.com/leaflet @ 1.2.0 / dist / images / marker-icon.png?   -  person Baptiste    schedule 06.10.2017
comment
Хорошее место, хотя у меня там не было этой мошеннической скобки, когда я ее пробовал, я только что попробовал с URL-адресом выше, и это не имеет значения :(   -  person JL9    schedule 06.10.2017
comment
А если вы console.log(purpleIcon)?   -  person Baptiste    schedule 06.10.2017
comment
Не определено, вылетает const FPIcon = L.Icon.extend({   -  person JL9    schedule 06.10.2017
comment
Можете ли вы выложить весь код из файла? Я не могу быть уверен, но предполагаю, что вы не импортируете листовку, поэтому переменная L не определена.   -  person Evan Siroky    schedule 07.10.2017


Ответы (2)


Ваша листовка ввозится неправильно. Импортируйте листовку следующим образом, после чего она будет работать должным образом:

import L from 'leaflet';
person anshuraj    schedule 12.11.2018

Используйте компонент "Ниже", чтобы добавить пользовательский маркер.

https://github.com/tomchentw/react-google-maps/issues/144

person Demo Demo    schedule 06.10.2017
comment
Скопируйте соответствующий контент, ссылки могут быть изменены или удалены - person GGO; 06.10.2017
comment
Этот компонент является ограничительным и не позволяет добавлять изображение png в качестве маркера, как я пытаюсь сделать выше, плюс он разработан на основе Google, а не Leaflet. - person JL9; 06.10.2017