0

エディターの外側のツールバーをクリックして、Slatejs ドキュメントにカスタム要素を追加する必要があるとします。それはトリガーされますTransform.insertNodesが、カーソルの代わりに要素を追加する代わりに (ツールバーをクリックすると消えて選択が失われます)、要素をドキュメントの最後に配置します。カーソルの現在の位置がわからず、カーソル位置をたどるヘルパーが表示されないため、LocationslikePointまたはを使用しても役に立ちません。Range

では、要素をカーソルの場所に配置するにはどうすればよいですか?

4

1 に答える 1

2

これは、既知の問題editor.selectionである、フォーカスが失われたときに null になる問題のように思えます。

いくつかの回避策があります。1 つは、自分で選択を追跡することです。

<Slate
  ...
  onBlur={() => {
    editor.lastSelection = editor.selection;
  }}
/>
...
Transforms.select(editor, editor.lastSelection)
Transforms.insertNodes(...,) // this will no work

もう 1 つの方法は、選択範囲が失われないように Transforms.deselect にモンキー パッチを適用することです。

于 2020-04-21T21:18:49.857 に答える