7

我正在尝试在当前选择下方添加一个新行,然后将选择放入新行。

let current_path = props.selection.anchor.path[0]
Transforms.insertNodes(editor, {type:'line', children:[{ text:'' }]},{at: [current_path+1]});
const point = { anchor: { path: [current_path+1, 0], offset: 0 }, focus: { path: [current_path+1, 0], offset: 0 }}
// set focus
ReactEditor.focus(editor);
// set selection
Transforms.select(editor, point);

但这出现了一个错误:错误:无法从 Slate 节点解析 DOM 节点:{“text”:“”}。有谁知道如何解决它或有其他方法来实现它?谢谢!

4

1 回答 1

1

我偶然发现了这个问题并找到了答案。您需要保存selection,然后使用Transform.select来恢复它。

例如

import { Transforms } from "slate";


// clone to store selection
const previousSelection = Object.assign({}, editor.selection);

// restore selection
Transform.select(editor, previousSelection)

于 2021-05-12T10:12:03.923 回答