Итак, я пытаюсь отменить некоторые действия внутри компонента реакции.
import React, {Component} from "react";
import debounce from "lodash/debounce";
...
@connect(
mapStateToProps,
{someAction}
)
class SomeClass extends Component {
constructor(props) {
...
this.debouncedAction = debounce(props.someAction, 300);// someAction works ok
}
onSomeEvent = (...args) => {
this.debouncedAction(args); // this does not work
}
}
Так модифицированный debouncedAction
не называется. Есть ли способ сделать это, не создавая дополнительных действий в mapStateToProps
?
Мне нужно сохранить оба, потому что один для фильтрации, второй (отклонен) для поиска.
Определенно возможно отменить обработчик событий, который затем использует действие.
class SomeClass extends Component {
// Debounce the event handler here instead
onSomeEvent = debounce((...args) => {
const { someAction } = this.props;
someAction(...args);
}, 300)
// ...
}
Это также гарантирует, что каждый раз, когда выполняется обратный вызов события, он использует текущее значение свойства, поэтому оно всегда актуально.