我有一个内部渲染输入的组件,该输入的onBlur属性连接到此输入。下面是一个简单的例子:
componendDidUpdate(prevProps, prevState) {
if (prevState.blur !== this.state.blur) {
this.props.onBlur(event);
}
}
render() {
return <input onFocus={this._handleFocus} onBlur={this._handleBlur} />
}
_handleFocus = event => {
this.setState({blur: false});
}
_handleBlur = event => {
event.persist();
this._lastEvent = event;
this.setState({blur: true});
}
我想通知CDU中的blur,因为在组件内部交互时,有许多事件可能会触发blur事件。但我只想在组件用户从聚焦状态过渡到模糊状态时通知它。但问题是我不能异步访问事件对象,所以唯一的解决方案是执行event.persist()。但React文档表示,出于性能原因,它会执行事件池。有没有什么方法可以在不坚持事件的情况下达到同样的效果?