Курсор в самом начале первой строки в редакторе Draft.js

У меня есть onUpArrow обработчик, который должен проверить, находится ли курсор в самом начале первой строки в редакторе Draft.js. Редактор может содержать несколько строк / блоков.

я нашел это SelectionState такие методы, как getAnchorOffset() а также getStartOffset() можете сказать мне, что курсор находится в начале строки, возвращая 0, но это значение возвращается в начале любой строки / блока, а не только первой в редакторе.

Эта проблема ссылается на "получить начало или конец документа или получить точную позицию курсора", но, похоже, это не вошло в источник черновика.

Кто-нибудь знает способ определить, находится ли курсор в самом начале содержимого редактора?

2 ответа

Решение

На основании вашего чека, и это editorState.getCurrentContent().getBlockMap().first().getKey() === selectionState.getAnchor/FocusKey()

Вот пример того, как я использую стандартную функцию handleKeyCommand, чтобы определить, нахожусь ли я в начале первой строки редактора 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.
  }
}
Другие вопросы по тегам