react-amap-v2
Version:
高德地图 v2.0 react 组件
33 lines (29 loc) • 969 B
text/typescript
import { useEffect } from 'react';
import debug from '@/debug';
export function useEvents(events?: any, instance?: any) {
useEffect(() => {
if (instance && typeof events?.created === 'function') {
events?.created(instance);
}
if (events && instance) {
debug('events')('注册事件,实例: %O 事件:%O', instance, events);
// 注册事件
Object.keys(events).map(key => {
if (typeof instance?.on === 'function' && key !== 'created') {
instance?.on(key, events[key]);
}
});
}
return () => {
// 取消事件注册
if (events && instance) {
debug('events')('移除事件注册,实例: %O 事件:%O', instance, events);
Object.keys(events).map(key => {
if (typeof instance?.off === 'function' && key !== 'created') {
instance?.off(key, events[key]);
}
});
}
};
}, [instance, JSON.stringify(events)]);
}