Skip to content

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

基于蜂鸟视图 Fengmap SDK 构建