0
Draft.jsエディタにフォーカスを当てて、最初の行/ブロックの先頭にカーソルを置く必要があります。エディタには複数の行/ブロックが含まれています。フォーカスエディタ、最初のブロックの開始位置にカーソルを置く
this.refs.editor.focus()
のみが適用されている場合、カーソルは常にエディタ内の2番目のブロック/行の先頭に配置されます。
this questionとthis issueを参考にして、以下のコードを試してみました。私はcreateFromBlockArray()
にblockMap
を渡すことは正しくないと思われる:
focusTopLine() {
this.refs.editor.focus();
const { editorState } = this.state;
const contentState = editorState.getCurrentContent();
const selectionState = editorState.getSelection();
const blockMap = contentState.getBlockMap();
const newContentState = ContentState.createFromBlockArray(blockMap);
const newEditorState = EditorState.createWithContent(newContentState);
this.setState({
editorState: EditorState.forceSelection(newEditorState, selectionState)
});
}
おかげ - あなたのコードが働いていることを確認しました。なんらかの理由で、 'setTimeout(...、0)'で 'setState'の呼び出しをラップする必要がありましたが、その変更では動作しているようです。再度、感謝します。 – cantera