Как передать скрытое свойство «перетаскиваемый» в мой компонент? - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть рабочая здесь карта , сейчас я пытаюсь добавить перетаскиваемые маркеры на карту.

Примечание: я использую пакет / модуль, изготовленный моей компанией. Это дружественный к React пакет этого API, в частности mapsjs-core.js & mapsjs-service.js. Это позволяет мне визуализировать компонент <PlainMap/>, где я могу передавать реквизиты, такие как высота и высота для карты, которая будет отображаться. Как дочерние компоненты этого <PlainMap> я могу передать что-то вроде <Marker> или <Polygon>.

Теперь у этого <Marker> есть эти реквизиты

position: H.geo.IPoint | H.geo.IPoint[];
icon?: React.ReactElement<any>;
eventListenerMap?: {};

Я ссылаюсь на этот официальный пример с практическими рекомендациями из документации . Но у меня нет реквизита или флагов, которые я могу передать <Marker>, чтобы сделать его перетаскиваемым (см. Строку 28 ссылки выше).

Все события, такие как tap, pointerenter, pointerleave, работают для меня нормально, но перетаскивание не работает, потому что (по крайней мере, я так думаю) я должен сделать маркеры перетаскиваемыми. EVENT-типа .

Я бы с удовольствием передал это перетаскиваемому моему Маркеру, но я просто не знаю, как это сделать.

Есть ли возможность как-нибудь это сделать?

Может быть, обернуть этот `Компонент и добавить новое свойство типа" draggable ", а затем просто установить его в true при использовании этого компонента? Примерно так:

<Marker 
   key={index} 
   position={point} 
   eventListenerMap={this.markerEventHandlers}
   draggable={true}
/>

1 Ответ

1 голос
/ 25 апреля 2019

Поскольку <Marker> является частным / настраиваемым компонентом React вашей компании, обернутым вокруг Marker JS-класса / экземпляра HERE, вам нужно будет добавить draggable реквизит к компоненту (как вы делали выше), а затем обновитьРеализация компонента для установки свойства перетаскивания экземпляра Marker HERE следующим образом: marker.draggable = this.props.draggable.

...