reactjs - 获取 RangeError:使用 React datepicker 时的时间值无效
问题描述
我已经使用 react-datepicker 库设置了一个 DatePicker 组件,并将使用今天的日期以 MM-DD-YYYY 格式计算的初始日期值传递给它。
但是,当我在 React 中加载页面时,我得到
RangeError:时间值无效
const AuthForm = ({ buttonText, formType, onAuth, history, ...props }) => {
const startDate = new Date().toLocaleDateString();
const initialStateSignup = {
email : "",
password : "",
firstName: "",
lastName: "",
gender: "",
dob: startDate
};
const [state , setState] = useState(formType === 'login' ? initialStateLogin : initialStateSignup);
const handleChange = e => {
const {name , value} = e.target;
setState( prevState => ({
...prevState,
[name] : value
}))
}
...
return (
<DatePicker
placeholderText="Date of Birth"
selected={state.dob}
onChange={handleChange}
/>
)
这个错误来自哪里?我在控制台记录了 startDate,它看起来对我有效,这是我在其他线程中看到的用于生成开始日期的方法。
解决方案
根据这篇文章https://github.com/Hacker0x01/react-datepicker/issues/1752您很可能使用旧版本的 datepicker,这也可能与您的 React 环境不完全一致。
因此,请检查您的 react-datepicker 版本,如果需要升级到 2+,并使用以下语法:
const selected = moment(isoDateStr).toDate();
这是因为版本 2 之前的 react-datepicker 直接使用时刻对象日期类型,而版本 2+ 使用 javascript 日期类型。
推荐阅读
- python - 我的 jupyter notebook 无法分配实例属性,我使用的只是类对象属性
- sql - 去年添加的 BigQuery 自加入,同时考虑了间隔年
- python - 如何尽可能快地计算矩阵的标量积
- python - 在 windows 中使用 ctypes 在 python 中调用 c++
- python - 将字典中的单个值添加到空字典中
- javascript - 点击外部时在循环中隐藏下拉菜单
- java - 如何注入供应商类型的bean?
- python - 以编程方式获取 NASDAQ-100 的组件列表
- css - 如何使 Angular Material Buttons 不滚动到粘滞条上
- micrometer - 用千分尺测量信号量等待时间