@indoor-map/fmap-js • Docs
地图实时状态类
使用方式:
typescript
// 订阅状态变化
const unsubscribe = fmap.state.subscribe((snapshot) => {
console.log('当前楼层:', snapshot.currentLevel);
console.log('地图中心:', snapshot.center);
});
// 读取当前状态(不可变快照)
const current = fmap.state.getSnapshot();
// 取消订阅
unsubscribe();Constructors
new FMapState()
new FMapState(
initial?):FMapState
Parameters
• initial?: Partial<FMapStateSnapshot>
Returns
Accessors
listenerCount
Get Signature
get listenerCount():
number
获取当前监听器数量
Returns
number
Methods
dispose()
dispose():
void
Internal
销毁,清除所有监听器
Returns
void
getServerSnapshot()
getServerSnapshot():
FMapStateSnapshot
获取当前状态快照(同 getSnapshot,兼容旧用法)
Returns
Deprecated
请使用 getSnapshot()
getSnapshot()
getSnapshot():
FMapStateSnapshot
获取当前状态快照 返回内部缓存的同一引用(内容变化时才会替换为新对象), 引用稳定可安全用于 useSyncExternalStore;调用方不应修改返回的对象
Returns
notify()
notify():
void
Internal
强制通知所有监听器(即使状态未变化) 用于外部直接修改了 SDK 状态但 FMapState 未感知的场景
Returns
void
reset()
reset():
void
Internal
重置为默认状态
Returns
void
subscribe()
subscribe(
listener): () =>void
订阅状态变化
Parameters
• listener: StateListener
监听回调,状态变化时触发,参数为最新快照
Returns
Function
取消订阅函数
Returns
void
update()
update(
partial):void
Internal
批量更新状态并通知监听器 仅在值真正变化时才通知
Parameters
• partial: Partial<FMapStateSnapshot>
Returns
void