位置引用

Plate 中位置引用的 API 参考。

位置引用是用于在文档中保持特定位置(路径、点或范围)同步的对象,当编辑器应用新操作时会自动更新。您可以随时访问其 current 属性以获取最新的位置值。

类型

PathRef

路径引用对象用于在文档中保持特定路径的同步。使用 editor.api.pathRef 创建。

Attributes

  • current Path | null

    当前路径值,随操作应用而更新。

  • affinity 'forward' | 'backward' | null

    转换路径时首选的方向:

    • 'forward':首选插入内容后的位置
    • 'backward':首选插入内容前的位置
    • null:无偏好
  • unref() () => Path | null

    当不再需要同步此路径时调用。返回最终的路径值。

PointRef

点引用对象用于在文档中保持特定点的同步。使用 editor.api.pointRef 创建。

Attributes

Collapse all
  • current Point | null

    当前点值,随操作应用而更新。

  • affinity 'forward' | 'backward' | null

    转换点时首选的方向:

    • 'forward':首选插入内容后的位置
    • 'backward':首选插入内容前的位置
    • null:无偏好
  • unref() () => Point | null

    当不再需要同步此点时调用。返回最终的点值。

RangeRef

范围引用对象用于在文档中保持特定范围的同步。使用 editor.api.rangeRef 创建。

Attributes

Collapse all
  • current TRange | null

    当前范围值,随操作应用而更新。

  • affinity 'forward' | 'backward' | 'inward' | 'outward' | null

    转换范围时首选的方向:

    • 'forward':两个点都首选插入内容后的位置
    • 'backward':两个点都首选插入内容前的位置
    • 'inward':在边缘插入内容时范围倾向于保持相同大小
    • 'outward':在边缘插入内容时范围倾向于扩大
    • null:无偏好
  • unref() () => TRange | null

    当不再需要同步此范围时调用。返回最终的范围值。

RangeRef 使用示例:

const selectionRef = editor.api.rangeRef(editor.selection, {
  affinity: 'inward',
})
// 可能会改变选择的操作
Transforms.unwrapNodes(editor)
// 使用引用恢复选择
Transforms.select(editor, selectionRef.unref())

PathRefApi

transform

通过操作转换路径引用。

Parameters

Collapse all
  • ref PathRef

    要转换的路径引用。

  • op Operation

    要应用的操作。编辑器会根据需要自动调用。

PointRefApi

transform

通过操作转换点引用。

Parameters

Collapse all
  • ref PointRef

    要转换的点引用。

  • op Operation

    要应用的操作。编辑器会根据需要自动调用。

RangeRefApi

transform

通过操作转换范围引用。

Parameters

Collapse all
  • ref RangeRef

    要转换的范围引用。

  • op Operation

    要应用的操作。编辑器会根据需要自动调用。