Что вам нужно, так это вызвать метод buttonHanlder
для onClose
метода TimePicker
. Это означает, что когда вы выбрали нужное время и нажали где-нибудь еще, чтобы закрыть всплывающее окно, оно вызовет это событие, а затем обновит состояние (если, конечно, обе записи времени не пусты)
<TimePicker
onClose={this.buttonHanlder}
value={
moment(this.state.timeto, "HH:mm").isValid()
? moment(this.state.timeto, "HH:mm")
: ""
}
onChange={time => this.handleChange(time, "timeto")}
showSecond={false}
/>
и удалите вызов на handleChange
Отметьте эту песочницу
https://codesandbox.io/s/hungry-flower-4ph42