react-okr-tree Logoreact-okr-tree
指南

指南总览

全部能力按域索引:布局与展开、节点渲染与外观、交互与数据,以及各专题子页。

指南按「一块能力一页」组织,每页给出行为约定与可直接抄的写法,并内嵌对应的可交互用例。下面是能力全景,可以当成 checklist 用:需要哪块就直接跳过去。

布局与展开

能力关键 API默认值
垂直 / 水平两种基础方向directionvertical
显示 +/- 圆盘showCollapsablefalse(此时强制全部展开,原版行为)
默认全部展开defaultExpandAllfalse
指定节点默认展开(祖先自动展开)nodeKey + defaultExpandedKeys
手风琴:展开一个自动收起同级accordionfalse,只作用于交互展开
点卡片切换展开expandOnClickNodefalse
OKR 双向展开onlyBothTree + leftDatafalse
OKR 根节点不位移alignRoottrue
折叠时在圆盘内显示子节点数showNodeNumfalse(只计未被 filter 隐藏的可见子节点)

showCollapsablefalse 时没有圆盘,也就没有「收起」这个动作——组件把全部节点展开。这是原版的既有行为,React 版照抄,defaultExpandAll 因此只在该 prop 打开时才有意义。

节点渲染与外观

能力关键 API
卡片尺寸labelWidth / labelHeight(number → px,string → 原样作 style,缺省 auto
卡片类名labelClassName / currentLableClassName(固定串或 Function(node),入参是内部 TreeNode
节点内容三种写法renderNode(或 children 传函数)> nodeComponent > renderContent > 内置 node.label
展开按钮内容两种写法showNodeNum 的折叠数字 > renderExpandBtn > nodeBtnContent
空数据占位emptydata 为空数组时渲染在 role="tree" 容器内)
字段映射propslabel / children / disabled / isLeaf
主题themedefault / feishu / dark / auto / minimal / colorful,或自定义名
去掉卡片外观unstyled
连接线connectorcss / svg)+ connectorShapecurve / orthogonal / straight
展开过渡animate + animateName(6 个 okr-* 名)+ animateDuration

优先级两行的顺序不可调整:源项目节点内容与展开按钮各有一条固定的分支链,React 版按同一顺序实现(node-content.tsx)。三处渲染定制同时传入时只有最高优先级那个生效。

交互、数据与状态

能力关键 API
全树过滤、父随可见后代filterNodeMethod + handle.filter(value)数据变更
增删改同步回写源数据append / insertBefore / insertAfter / remove / updateKeyChildren / moveNode、懒加载 resolve数据变更
原地变更检测deepWatch + handle.refreshData()数据变更
点击 / 右键 / 展开收起事件onNodeClick / onNodeContextMenu / onNodeExpand / onNodeCollapse受控与非受控
受控展开与选中expandedKeys + onExpandedKeysChangecurrentKey + onCurrentKeyChange受控与非受控
命令式方法OkrTreeHandle 的 28 个方法 + store / root受控与非受控
复选框showCheckbox / checkStrictly / defaultCheckedKeysonCheck / onCheckChange、6 个勾选方法
拖拽换父级draggable / allowDrag / allowDropprev / inner / next 三分区、6 个拖拽回调
懒加载lazy + load(node, resolve, reject)props.isLeaf懒加载
画布缩放与导出OkrTreeViewportminZoom / maxZoom / zoomStep / wheelBehavior / toolbar / renderToolbarexportImage()画布
多棵树根对齐OkrTreeGroup + align + refresh()组对齐
键盘与 ARIA内置,无需配置键盘与可访问性
类型推导OkrTree<T> 泛型组件泛型与类型推导

复选框与拖拽没有独立子页:两者的 props / 回调在 API 的 Attributes 与 Events 表里逐项列出,行为要点写在各自的表说明列,本页只登记入口。

子页

本页目录