如何使 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}
/>
保存选择状态,当您回到编辑器时,光标将位于模糊之前的最后一个位置。
我使用 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}
/>
保存选择状态,当您回到编辑器时,光标将位于模糊之前的最后一个位置。