Получение объекта события с помощью команды Underscore debounce[React]
Я пытаюсь использовать debounce в действии, которое мне удалось сделать, однако я хочу передать его как параметр, но оно не работает. Есть ли способ, которым я мог бы сделать это?
constructor(props, context) {
super(props, context);
this.testing = _.debounce(this.testing.bind(this), 2000);
}
@action testing(e) {
alert("debounced!!");
//use e.target ...
}
Если я заберу e, он попадет в функцию, иначе нет. Что я должен сделать, чтобы решить эту проблему?
2 ответа
Вы можете использовать event.persist() для передачи события методу debounce.
Согласно DOCS:
Если вы хотите получить доступ к свойствам события в
asynchronous
Кстати, вы должны позвонитьevent.persist()
на событии, которое удалит синтетическое событие из пула и позволит удерживать ссылки на событие в пользовательском коде.
Таким образом, вы можете использовать событие как
constructor(props, context) {
super(props, context);
this.testing = _.debounce(this.testing.bind(this), 2000);
}
@action testing(e) {
alert("debounced!!");
//use e.target ...
}
onChange = (e) => {
e.persist();
this.testing(e);
}
После назначения this.testing
,
this.testing = _.debounce (this.testing.bind (this), 2000);
в некоторых случаях вы должны вызывать этот метод с параметром
onSumbit(e){
this.testing(e);
}
что-то вроде этого