terence55 / react-baidu-maps

React Components for Baidu Maps
24 stars 4 forks source link

怎样使用 publicMethodMap ? #17

Closed foxcharon closed 3 years ago

foxcharon commented 3 years ago

比如说,我想使用 Marker 的 getIcon 这个方法,请问怎么使用?

` <Marker getIcon={(i) => {console.log('getIcon: ', i)}} icon={icons[type]} position={{ lng: lng, lat: lat }} onClick={() => {console.log('onClick: ', lng, lat);}} onMouseover={() => {console.log('onMouseover: ', lng, lat)}}

              </Marker>

`

这样写是不是错的?如果是,请问应该怎样写?

terence55 commented 3 years ago

publicMethodMap里的方法对应了BaiduMap API里的每个类的方法 http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference_3_0.html#a3b2 如果需要调用的话,和BaiduMap本身无关,可以按照React的正常做法,拿到Component的ref以后调用,比如:

<Marker
  position={{lng: 116.404, lat: 39.915}}
  ref={(instance) => this.myMarker = instance}
  onClick={() => { console.log('onClick: ', this.myMarker.getIcon()); }}
/>

如果你用hooks话,换成useRef即可

foxcharon commented 3 years ago

publicMethodMap里的方法对应了BaiduMap API里的每个类的方法 http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference_3_0.html#a3b2 如果需要调用的话,和BaiduMap本身无关,可以按照React的正常做法,拿到Component的ref以后调用,比如:

<Marker
  position={{lng: 116.404, lat: 39.915}}
  ref={(instance) => this.myMarker = instance}
  onClick={() => { console.log('onClick: ', this.myMarker.getIcon()); }}
/>

如果你用hooks话,换成useRef即可

谢谢!Thank You!