代码之家  ›  专栏  ›  技术社区  ›  mohsinulhaq

将事件对象发送到没有event.persist的回调

  •  1
  • mohsinulhaq  · 技术社区  · 6 年前

    我有一个内部渲染输入的组件,该输入的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文档表示,出于性能原因,它会执行事件池。有没有什么方法可以在不坚持事件的情况下达到同样的效果?

    0 回复  |  直到 6 年前