Store

Plate store 的 API 参考。

Plate 使用 jotai 来存储编辑器的状态。

Plate Store

Store

PlateStoreState 对象存储 Plate 编辑器的状态。它包含有关编辑器 ID、当前值、插件和其他设置的信息。

Attributes

Collapse all

    Slate 编辑器引用。

    • Default: createPlateFallbackEditor()

    一个用作提供者作用域的唯一 ID。如果在同一个 React 树中有多个 Plate,则需要使用它。

    • Default: random id

    编辑器容器元素的引用。

    用于装饰编辑器中范围的函数。

    (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.

    • Default: true

    编辑器是否为只读。

    在编辑器中渲染元素的函数。

    在编辑器中渲染叶节点的函数。

    调用 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

Collapse all

    编辑器 ID。

Event Editor Store

此存储是一个对象,其属性键是事件名称(例如 'focus'),属性值是 editor IDs

  • 当有多个编辑器时,这很有用,可以基于 DOM 事件获取一个(例如最后一个聚焦的编辑器)。
  • Plate 的一个核心插件将存储以下事件。

State

Attributes

Collapse all

    最后一个失去焦点的编辑器 ID。

    当前聚焦的编辑器 ID。

    最后一个编辑器 ID。

useEventEditorSelectors

钩子选择器。

  • Example: useEventEditorSelectors().focus() 将获取最后一个聚焦的编辑器 ID。

useEventPlateId

获取最后一个事件编辑器 ID。

Parameters

Collapse all

    如果定义,返回的 ID。

Returns

    如果可用,从上下文中获取 plate id,否则获取最后一个事件编辑器 ID 或 PLATE_SCOPE