Draftjs 测试编辑器的自动对焦

WΔ_*_*WΔ_ 2 javascript reactjs draftjs

如何确保draft-jsUI 上的唯一文本框在页面加载时自动聚焦?

有一个称为 的文档化方法focus,但是我不确定实现所需的语法。

Tyl*_*ian 6

这里

基本上,你会做类似的事情

<Editor ref="someRef" />
Run Code Online (Sandbox Code Playgroud)

componentDidMount = () => {
    this.refs.someRef.focus();
}
Run Code Online (Sandbox Code Playgroud)

  • 我可以确认这适用于新的 React useEffect 钩子。尽管我像这样使用了 ref:`ref={someRef}`,并且在我的 UseEffect 中,我有 `someRef.current.focus();` ,其中有一个空数组作为依赖项传入。 (2认同)

小智 6

如果你的编辑器是用一些默认值启动的,那么只会this.refs.editor.focus()在文本的开头有光标。所以要将光标移动到最后,我们需要做这样的事情componentDidMount

  componentDidMount() {
    this.setState({
      editorState:  EditorState.moveFocusToEnd(this.state.editorState), // EditorState imported from draft-js
    });
  }
Run Code Online (Sandbox Code Playgroud)

https://github.com/draft-js-plugins/draft-js-plugins/blob/master/draft-js-plugins-editor/src/Editor/moveSelectionToEnd.js -- 方法链接