【问题标题】:How to change cursor position with draft.js?如何使用 Draft.js 更改光标位置?
【发布时间】:2018-09-29 11:59:44
【问题描述】:

我想知道在对键盘命令进行文本插入后如何更改 Draft.js 中的光标位置。因此,我目前使用_handleKeyCommand(cmd) 在用户按下特定按钮时插入自定义文本块。接下来我尝试了以下方法:

currentState = this.state.editorState;
var selectionState = this.state.editorState.getSelection().getStartKey();
this.setState({editorState: EditorState.forceSelection(currentState, selectionState)});

但这会不断崩溃并显示错误消息

TypeError: selection.getHasFocus 不是函数

虽然我导入了SelectionState。那么如何正确更改光标位置(最好是插入前的位置)以及我在这里做错了什么?

【问题讨论】:

    标签: reactjs selection text-editor cursor-position draftjs


    【解决方案1】:

    var selectionState = this.state.editorState.getSelection().getStartKey(); 应该是var selectionState = this.state.editorState.getSelection()

    【讨论】:

    • 不错!那么如何修改选择状态呢?
    • selectionState=selectionState.merge({'forceKey':xxxx, focusOffset:5})
    • 如何将光标聚焦到元素的最后一个字符?
    • @Anil 如果你的意思是elementblock,那么将focusOffset 设置为该块的文本长度。
    猜你喜欢
    • 2021-11-30
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    相关资源
    最近更新 更多