Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在Draft.js编辑器中,光标位于第一行的最开始处_Reactjs_Draftjs - Fatal编程技术网

Reactjs 在Draft.js编辑器中,光标位于第一行的最开始处

Reactjs 在Draft.js编辑器中,光标位于第一行的最开始处,reactjs,draftjs,Reactjs,Draftjs,我有一个onUpArrow处理程序,需要检查指针是否位于Draft.js编辑器中第一行的最开头。编辑器可能包含多个行/块 我发现SelectionState方法,如getAnchoroOffset()和getStartOffset()可以通过返回0来告诉我光标位于行的开头,但该值会返回到任何行/块的开头,而不仅仅是编辑器中的第一行/块 这引用了“获取文档的开始或结束位置,或者获取准确的光标位置”,但似乎并没有将其放入草稿源中 有人知道一种检测光标是否位于编辑器内容最开始位置的方法吗?根据您的检查

我有一个
onUpArrow
处理程序,需要检查指针是否位于Draft.js编辑器中第一行的最开头。编辑器可能包含多个行/块

我发现
SelectionState
方法,如
getAnchoroOffset()
getStartOffset()
可以通过返回
0
来告诉我光标位于行的开头,但该值会返回到任何行/块的开头,而不仅仅是编辑器中的第一行/块

这引用了“获取文档的开始或结束位置,或者获取准确的光标位置”,但似乎并没有将其放入草稿源中


有人知道一种检测光标是否位于编辑器内容最开始位置的方法吗?

根据您的检查,这
editorState.getCurrentContent().getBlockMap().first().getKey()==selectionState.getAnchor/FocusKey()

以下是我如何使用标准函数检测我是否在DraftJS编辑器的第一行的开始处的示例:

handleKeyCommand(command, editorState) {

  const selectionState = editorState.getSelection()

  const firstline = (editorState.getCurrentContent().getBlockMap().first().getKey() == selectionState.getFocusKey())

  const startofline = (selectionState.getAnchorOffset() == 0)

  if (firstline && startofline) {
    // Your caret is at the start of the first line of your DraftJS editor.
  }
}

非常好,谢谢。如果对任何人都有帮助,
getFocusKey()
是结尾所需的方法(
getAnchorKey()
当光标位于行的开头时,返回所有行的
true
)。