我有一个工作正常的此处地图,现在我正在尝试向地图添加可拖动标记。
注意:我正在使用公司制造的包装/模块。这是Here api的React友好包,特别是mapsjs-core.js和mapsjs-service.js。这使我可以渲染一个<PlainMap/>
组件,在那里我可以传递诸如宽度和高度之类的道具来渲染地图。作为此<PlainMap>
的子组件,我可以传递类似<Marker>
或<Polygon>
之类的东西。
现在<Marker>
拥有这些道具
position: H.geo.IPoint | H.geo.IPoint[];
icon?: React.ReactElement<any>;
eventListenerMap?: {};
我指的是documentation中的这个官方方法示例。但是我没有任何道具或标志可以传递给<Marker>
使其可拖动(请参见上面链接的第28行)。
所有事件(例如轻击,指针进入,指针离开)对我来说都很好用,但拖动不起作用,因为(至少我认为如此)我必须使标记可拖动。 event-types。
我很想将此可拖动对象传递给我的标记,但是我只是不知道该怎么做。
是否有可能以某种方式完成此任务?
也许要包装这个`组件并添加一个新属性,例如“ draggable”,然后在使用该组件时将其设置为true?像这样:
<Marker
key={index}
position={point}
eventListenerMap={this.markerEventHandlers}
draggable={true}
/>
答案 0 :(得分:1)
由于<Marker>
是贵公司的私有/自定义React组件,包裹在这里的Marker
JS类/实例中,因此您必须向该组件添加draggable
道具(就像您所做的那样) ),然后更新组件的实现,以设置HERE的Marker实例的可拖动属性,如下所示:marker.draggable = this.props.draggable
。