用途:本技能建立在 @tanstack/table-core#core 与 getting-started 之上,用于在 Octane 的渲染/提交分离模型下读取并掌控 Table v9 的状态。
主要能力:table.baseAtoms 为内部可写原子,table.atoms 为各状态切片当前所有者的只读派生原子,table.store 为只读扁平 store,table.state 仅包含第二个 useTable 选择器的结果。只有已注册特性才贡献状态与类型,缺少分页时需添加 rowPaginationFeature。
使用方式:useTable 传入 features、columns、data 与选择器,选择器决定 table.state 形状并浅层控制重渲染。细粒度订阅用 <table.Subscribe source={table.atoms.rowSelection}> 作为组件渲染。外部原子用 @tanstack/octane-store 的 useCreateAtom 创建并传入 atoms,其优先级高于 options.state。受控切片需同时提供 state 与对应回调,如 state: { pagination } 与 onPaginationChange。写入使用 setSorting、nextPage、toggleVisibility、toggleSelected 等特性方法,v8 的全局 onStateChange 已移除。
适用场景:需要共享、持久化或由外部驱动表格状态时。每个切片只用一个所有者:本地状态优先内部状态与特性 API;初始值用 initialState;共享用稳定原子且不要搭配 on[State]Change;受控切片用 state 加回调。
限制与常见错误:store 与 atom 的 .get() 只是当前快照,不能当作订阅,应读 table.state 或渲染 table.Subscribe;Subscribe 必须作为组件调用,直接函数调用会共享所有者编译槽;只提供回调而不提供受控值会出错。API 可查看 node_modules/@tanstack/octane-table/dist 下的 useTable.d.ts、Subscribe.d.ts 与 types.d.ts,并使用 @tanstack/octane-store 而非其他框架的 Store hooks。