How to reproduce:
<DateInput value={null} dateFormat="dd/MM/yyyy" onChange={() => console.log('onChange')} onBlur = {() => console.log('onBlur')} disabled={false} showToLeft={false} showToTop={true} />
Check some date and look at browser console log.
Expected behavior: onChange should fire before onBlur.
What's actually happening: onBlur fires first. It breaks a consumer's logic if it depends on idiomatic behavior.