Store
Plate store 的 API 参考。
Plate
使用 jotai 来存储编辑器的状态。
注意:要在组件中使用 store hooks,需要在 Plate
内部渲染该组件。
Plate Store
Store
PlateStoreState 对象存储 Plate 编辑器的状态。它包含有关编辑器 ID、当前值、插件和其他设置的信息。
Attributes
- Default:
createPlateFallbackEditor()
- Default: random id
- Default:
true
Slate 编辑器引用。
一个用作提供者作用域的唯一 ID。如果在同一个 React 树中有多个 Plate
,则需要使用它。
编辑器容器元素的引用。
用于装饰编辑器中范围的函数。
(options: { editor: PlateEditor; entry: TNodeEntry }) => Range[]
Editable
是否已渲染,以便 slate DOM 可解析。
用于控制回调,当编辑器状态发生变化时调用。
(options: { editor: PlateEditor; value: ValueOf<PlateEditor> }) => void
用于控制回调,当 editor.selection 发生变化时调用。
(options: { editor: PlateEditor; selection: TSelection }) => void
用于控制回调,当 editor.children 发生变化时调用。
(options: { editor: PlateEditor; value: ValueOf<PlateEditor> }) => void
Whether the editor is primary. If no editor is active, then PlateController will use the first-mounted primary editor.
编辑器是否为只读。
在编辑器中渲染元素的函数。
在编辑器中渲染叶节点的函数。
调用 redecorate
时递增的版本号。这是 decorate
函数的一个依赖项。
每次编辑器更改时递增的版本号。
每次编辑器.selection 更改时递增的版本号。
每次编辑器.children 更改时递增的版本号。
Exposed Store Keys
以下存储键在 editor.setPlateState
中被暴露:
readOnly
onChange
decorate
renderElement
renderLeaf
Selectors
当你需要订阅一个值时,使用 usePlateSelectors(id).<state property>()
。
- 示例:
const value = usePlateSelectors(id).value()
将订阅value
的变化。 - 它在底层使用 useAtomValue。
Actions
当你需要一个存储属性的值和设置器时,使用 usePlateStates(id).<state property>()
。
- 示例:
const [value, setValue] = usePlateStates(id).value()
- 它在底层使用 useAtom。
useRedecorate
重新装饰编辑器。
Parameters
编辑器 ID。
Event Editor Store
此存储是一个对象,其属性键是事件名称(例如 'focus'
),属性值是 editor IDs。
State
Attributes
最后一个失去焦点的编辑器 ID。
当前聚焦的编辑器 ID。
最后一个编辑器 ID。
useEventEditorSelectors
钩子选择器。
- Example:
useEventEditorSelectors().focus()
将获取最后一个聚焦的编辑器 ID。
useEventPlateId
获取最后一个事件编辑器 ID。
Parameters
如果定义,返回的 ID。
Returns
如果可用,从上下文中获取 plate id,否则获取最后一个事件编辑器 ID 或 PLATE_SCOPE
。