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

时间:2018-06-06 00:41:23

标签: reactjs redux

我有这两个功能。我试图将事件“e”传递给promise,但在“handleOnClick”函数中,e为null,因为它超出了“this”范围。所以我把事件分配给了“this.clickEvent”并转而通过了,但现在我得到了关于synethetic事件和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。这被设置为null。如果必须保留原始合成事件,请使用event.persist()。有关更多信息,请参见fb.me/react-event-pooling。

1 个答案:

答案 0 :(得分:0)

正如错误告诉您的那样,只需致电event.persist()(无论您的活动是什么)。

More examples