如何使 draftjs 编辑器中的光标在更改和接收焦点时保持在原处?

How to make the cursor in draftjs editor to remain where it was when changing and receiving focus?

我使用 https://learn-draftjs.now.sh/simplest-editor 中显示的示例代码创建了一个简单的编辑器, 但是我的编辑器的行为方式与该页面中的编辑器不同。 当我改变焦点时,光标总是 return 到编辑器的开头,而当我重新聚焦时,我希望光标 return 到最后一个位置。

import React, { Component } from 'react';
import { Editor, EditorState } from 'draft-js';

export default class DraftTutsEditor extends Component {
  constructor(props) {
    super(props);
    this.state = { editorState: EditorState.createEmpty() };
    this.onChange = (editorState) => this.setState({ editorState });
  }
  render() {
    return (
      <Editor
        editorState={this.state.editorState}
        onChange={this.onChange}
      />
    );
  }
}

光标的位置是 SelectionState 的一部分。那么为什么它会移动到开头呢?以及如何修复它?

找到了。

 <Editor
        editorState={this.state.editorState}
        onChange={this.onChange}
        preserveSelectionOnBlur={true}
      />

保存选择状态,当您回到编辑器时,光标将位于模糊之前的最后一个位置。