Обновление: мне удалось заставить его работать, установив версию 3.4.0 и заменив два входа одним входом: https://codesandbox.io/s/kwy30z9rl3. Ошибка, которую я описал, вероятно, вызвана добавлением div-оболочки в один изболее поздние версии.В последней версии response-bootstrap-daterangepicker упаковывает любые передаваемые ему дочерние элементы в контейнер:
render() {
const { children, containerStyles, containerClass } = this.props;
return (
<div
ref={picker => {
this.$picker = $(picker);
}}
className={containerClass}
style={containerStyles}
>
{children}
</div>
);
}
И bootstrap-daterangepicker проверяет, является ли родительский элемент datepicker входным/ button и применяет необходимые обработчики событий:
if (this.element.is('input') || this.element.is('button')) {
this.element.on({
'click.daterangepicker': $.proxy(this.show, this),
'focus.daterangepicker': $.proxy(this.show, this),
'keyup.daterangepicker': $.proxy(this.elementChanged, this),
'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility
});
} else {
this.element.on('click.daterangepicker', $.proxy(this.toggle, this));
this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this));
}
И так как рассматриваемый элемент является простым делителем, каждый щелчок или нажатие клавиши на входе вызывает переключение.