[英]making a dropdown selector date for airbnb SingleDatePicker
我的設置是這樣的,我絕對是在擠壓圖書館外部可能的極限:
const [customDate, setCustomDate] = useState(moment());
const [focused, setFocused] = useState(false);)
const onDropDownChangeMonth = ()=>{
setCustomDate(moment('07-12-2020', dateFormat.MM_DD_YYYY));
setFocused(true);
}
<SingleDatePicker
date={customDate}
onDateChange={onDateChange}
focused={focused}
placeholder={props.placeholder}
onFocusChange={(e) => {
setFocused(e.focused);
}}
navPrev={<div></div>}
navNext={<div></div>}
keepFocusOnInput={true}
renderMonthText={() => (
<div style={{ display: 'flex', flexDirection: 'row' }}>
<select style={{ border: 'none', background: '#ffffff' }} onChange={onDropDownChangeMonth}>
<option>January</option>
<option>February</option>
<option>March</option>
<option>April</option>
<option>May</option>
<option>June</option>
<option>July</option>
<option>August</option>
<option>September</option>
<option>October</option>
<option>November</option>
<option>December</option>
</select>
</div>
)}
/>
所以,我目前的實現給了我這樣的正確結果:
因為,這會重新渲染,我想保持打開狀態(我可以忍受閃爍),日期更改,日歷更改,日歷保持打開狀態,但是,他們呈現空白的孩子:
只有當我手動散焦並重新打開時,日歷才會呈現,並且我會看到反映的更改。 如何讓日歷呈現? 如何使它不必手動散焦,我不介意閃爍。
順便說一句:我正在使用SingleDatePicker
的 SingleDatePicker
好吧,對於那些不介意眨眼而不是閃爍的人來說,這是一個可能的解決方案(請閱讀上面的問題)。 這是一個笨拙的解決方案,在我的情況下它沒有多大用處,只是在這里注意可能對此沒有意見的人,或者知道如何將這種閃爍減少到閃爍或什么都不做的人:
put this in the `onDropDownChangeMonth`:
const onDropDownChangeMonth = ()=>{
setCustomDate(moment('07-12-2020', dateFormat.MM_DD_YYYY));
setFocused(false);
setTimeout(()=>setFocused(true), 1);
}
即使我設置了 1 毫秒的超時時間,重新渲染的延遲也大約是 1 秒,這對我來說並不好。 . 請提及任何減少或擺脫延遲重新渲染的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.