如果编辑器在没有失焦的情况下(比如, 使用快捷键),
清空编辑框内容 ,
替换一个空的editorState,
这时候再输入内容,光标会出现跑到文字前面去,
以及各种光标错乱的情况
切换内容的时候,让编辑器失去焦点
切换完成后,再重新focus
// "domEditor"是编辑器的ref
...
this.setState({ editorState: newEditorState }, () => {
this.domEditor.blur()
this.domEditor.focus()
})
...
注意:要放在回调函数里
blur 和 focus操作必须由用户触发
1.可以由鼠标click,键盘keydown等操作触发
2.不能由setTimeout或者setInterval触发
3.触发时,不能有其他同步发生的异步请求
第三点非常重要