将点击事件传递给 Promise 中的函数告诉我使用 event.persist(),如何?

IT技术 reactjs redux
2021-05-13 06:16:23

我有这两个功能。我试图将事件“e”传递给Promise,但在“handleOnClick”函数中,e 为空,因为它超出了“this”范围。所以我将事件分配给“this.clickEvent”并传递了它,但现在我收到了关于合成事件和 event.persist() 的长消息。

我该如何解决?

handleClick( e ) {
  this.clickEvent = e;
  somePromise( param1, param2 ).then( result => {
    handleOnClick( this.clickEvent, param1, param2 );
  });
}

handleOnClick( e, param1, param2 ) {
  if ( e.shiftKey ) { // get the below message in console here }
}

警告:出于性能原因重用此合成事件。如果您看到这一点,则表示您正在访问已shiftKey发布/无效的合成事件上的属性这被设置为空。如果您必须保留原始合成事件,请使用 event.persist()。有关更多信息,请参阅 fb.me/react-event-pooling。

1个回答

正如错误告诉您的那样,只需调用event.persist()(无论您的事件是什么)。

更多例子