Reactjs 使用OnBlur事件修剪Draft.js编辑器内容

Reactjs 使用OnBlur事件修剪Draft.js编辑器内容,reactjs,mouseevent,trim,onblur,draftjs,Reactjs,Mouseevent,Trim,Onblur,Draftjs,为了调整Draft.js编辑器的内容,以下答案适用于onClick事件: 但是,我无法使它与onBlur事件一起工作 在这两种情况下,它都会到达方法,但只有在单击按钮时,它才会对内容进行修剪 您可以在以下JSFIDLE中重现此问题: 如果在开始处添加空格,然后单击按钮,它将修剪内容,但是,如果执行相同操作,然后单击不对焦,也会触发trimContent方法,但不会修剪内容 你知道我遗漏了什么吗?你有两个选择。您可以通过设置超时调用微调器 trimOnBlur = () =>{setTi

为了调整Draft.js编辑器的内容,以下答案适用于
onClick
事件:

但是,我无法使它与
onBlur
事件一起工作

在这两种情况下,它都会到达方法,但只有在单击按钮时,它才会对内容进行修剪

您可以在以下JSFIDLE中重现此问题:

如果在开始处添加空格,然后单击按钮,它将修剪内容,但是,如果执行相同操作,然后单击不对焦,也会触发
trimContent
方法,但不会修剪内容


你知道我遗漏了什么吗?

你有两个选择。您可以通过设置超时调用微调器

  trimOnBlur = () =>{setTimeout(this.trimContent , 0);}

或者在父div上添加onBlur事件,并使用tabIndex使其可聚焦

 tabIndex="0" onBlur={this.trimContent}

您的代码在Firefox和Safari中适用于我。另外,当我切换焦点时,这很令人惊讶,我现在检查了Firefox和Safari,在我的情况下,它在切换焦点时不会修剪空间。我真的不明白JS小提琴怎么可能在你的情况下工作。哦,我知道你想在模糊编辑器时使用它?我错过了那一点。。。让我试着不确定这两个解决方案中哪一个更好,但都对我有用,谢谢!第一个应该适合你的情况。。如果处理原子块,请记住tabIndex。。如果你需要专注行动,这将非常有用。