Hooks
useFMap
获取 FMapProvider 上下文中的所有实例,必须在 Provider 内使用:
tsx
import { useFMap } from '@indoor-map/fmap-react';
function MapController() {
const { fmap, loaded, search, navigation, marker, floor, location } = useFMap();
useEffect(() => {
if (!loaded || !search) return;
search.searchByName('咖啡').then((results) => console.log(results));
}, [loaded, search]);
return null;
}useFMapState
订阅地图实时状态,selector 可选,返回指定片段:
tsx
import { useFMapState } from '@indoor-map/fmap-react';
function FloorBadge() {
const currentLevel = useFMapState((s) => s.currentLevel);
const loaded = useFMapState((s) => s.loaded);
return loaded ? <div>当前楼层:{currentLevel}</div> : null;
}不传 selector 时返回完整 FMapStateSnapshot。