首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-dates startDate和endDate为空,DayPickerRangeController

react-dates startDate和endDate为空,DayPickerRangeController
EN

Stack Overflow用户
提问于 2021-01-29 23:01:03
回答 1查看 249关注 0票数 1

这是来自react-datesDayPickerRangeController组件

代码语言:javascript
复制
 <DayPickerRangeController
                    startDate={dates.startDate}
                    endDate={dates.endDate} 
                    onDatesChange={onDatesChange} 
                    focusedInput={focusedInput} 
                    onFocusChange={focusedInput => setFocusedInput(focusedInput)}
                    numberOfMonths={2} 
                />

我使用的是一个功能组件,默认状态是:

代码语言:javascript
复制
const [dates, setDates] = useState({ startDate: null, endDate: null });
const [focusedInput, setFocusedInput] = useState(null);

这是changeDates函数:

代码语言:javascript
复制
const onDatesChange = (dates) => {
    //setDates({ startDate, endDate });
    console.log(dates);
}

,但在日期更改时,结果是:{startDate: null, endDate: null}

我可以像这样将默认日期更改为invaling字符串:

代码语言:javascript
复制
const [dates, setDates] = useState({ startDate: 'jkhjkhjk', endDate: null });

和绑定更改事件{startDate: "jkhjkhjk", endDate: null}的结果

并显示日期无效值的警告

EN

回答 1

Stack Overflow用户

发布于 2021-01-30 01:07:54

问题在于,文档对DayPickerRangeController和所需的属性focusedInput并不清楚

它必须是startDate而不是null

代码语言:javascript
复制
const [focusedInput, setFocusedInput] = useState('startDate');

或从常量:

代码语言:javascript
复制
 import { START_DATE, END_DATE } from 'react-dates/constants';
 ...
 const [focusedInput, setFocusedInput] = useState(START_DATE);

确保这不是null,就像在选择endDate之后一样

代码语言:javascript
复制
focusedInput={focusedInput || START_DATE} // startDate

工作演示:

https://codesandbox.io/s/react-dates-date-range-picker-forked-e8qne?file=/src/date-picker.jsx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65956860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档