Effectuer des anti-rebond dans React.js

Comment procédez-vous pour anti-rebond dans React.js?

Je veux antirebond de la handleOnChange.

J'ai essayé avec debounce(this.handleOnChange, 200) mais ça ne fonctionne pas.

function debounce(fn, delay) {
  var timer = null;
  return function() {
    var context = this,
      args = arguments;
    clearTimeout(timer);
    timer = setTimeout(function() {
      fn.apply(context, args);
    }, delay);
  };
}

var SearchBox = React.createClass({
  render: function() {
    return <input type="search" name="p" onChange={this.handleOnChange} />;
  },

  handleOnChange: function(event) {
    //make ajax call
  }
});
  • J'ai rencontré le même problème avec vous, superbe réponses ci-dessous!mais je pense que vous avez utilisé de mauvaise façon de debounce. ici, quand onChange={debounce(this.handleOnChange, 200)}/>, il appellera debounce function à chaque fois. mais ,en fait, nous avons besoin d'invoquer la fonction de ce antirebond fonction renvoyée.