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
)。