我正在尝试让 Airbnb 的 react-dates 库持续显示日历(即不要让它像抽屉/模式那样切换它的可见性)。
我查看了文档并注意到了appendToBody
道具,但这只是将DayPickerRangeController
输入字段放在后面。它有点接近,因为日历有点被 CSS 阻止,但它仍然是一个消失的抽屉/模式。
我已经查看了 CSS,并且可以通过删除div 元素上的 CSS 值来使日历inline-block
基本上在输入字段获得焦点时显示。但是,当输入焦点丢失时,它仍然会消失。position: absolute
DateRangePicker_picker
我尝试的另一种方法是使用正在使用的内部组件DateRangePicker
(例如DateRangePickerInputController
和DayPickerRangeController
)。DateRangePicker
从视觉布局的角度来看,我可以进行更多控制,但是我失去了在选择日期/日期/范围和发回该信息方面的所有内置功能。
<DateRangePickerInputController
readOnly
endDate={endDate}
endDateId="endDate"
endDatePlaceholderText="mm/dd/yyyy"
isEndDateFocused={focusedInput === 'endDate'}
isStartDateFocused={focusedInput === 'startDate'}
startDate={startDate}
startDateId="startDate"
startDatePlaceholderText="mm/dd/yyyy"
/>
<DayPickerRangeController
noBorder
endDate={endDate}
focusedInput={focusedInput}
initialVisibleMonth={() => !startDate ? moment().subtract(1, 'M') : startDate }
isOutsideRange={isOutsideRange.bind(this)}
minimumNights={0}
numberOfMonths={numberOfMonths}
onDatesChange={onDatesChange.bind(this)}
onFocusChange={onFocusChange.bind(this)}
orientation={orientation}
startDate={startDate}
/>
正如我所提到的,这些元素按照我想要的方式呈现,因为日历和输入是持久的并且彼此“堆叠”在一起。
并且只有 1 个月正确显示,但是当我单击日历中的一天时,startDate
输入字段不会更新。对endDate
. 突出显示日历中日期的悬停已消失。当我点击它们时,个别日子的亮点/着色消失了。