Я только рекомендую сделать эту функцию через 
debounce (или аналоги):
constructor(props) {
    super(props);
    const finalMouseDelay = props.mouseDelay || 300;
    
    this.handleMouseLeave = this.handleMouseLeave.bind(this);
    this.handleMouseEnter = this.handleMouseEnter.bind(this);
    this.toggleHover = _.debounce(this.toggleHover.bind(this), finalMouseDelay);
    
    this.state = { hover: false };
  }
  handleMouseLeave() {
    this.toggleHover(false);
  }
  
  handleMouseEnter() {
    this.toggleHover(true);
  }
  toggleHover(to) {
    this.setState({ hover: to });
  }
Рабочий пример тут - 
jsfiddle.net/yuvuyrhv/24
Иначе у Вас будут 
дикие лаги, если пользователь навел мышку\убрал мышку\снова навел ... с интервалом быстрее, чем заданный вами