reactjs - 如何检测 RangePicker 的开始和结束日期的 onChange 事件?
问题描述
我的应用程序上有一个标准的 antd RangePicker:
<RangePicker
format="DD-MM-YYYY"
onOpenChange={onOpenChange}
disabled={loading}
defaultValue={dateDefaultValue}
onCalendarChange={onCalendarChange}
/>
根据他们的文档,从 4.4.0 版本开始有一个 info 参数,我使用的是 4.10.3 版本。
const onCalendarChange = (dates, dateStrings, info) => {
console.log(dates);
console.log(dateStrings);
console.log(info);
if (dates?.length) {
setStartDate(dates[0]);
setEndDate(dates[1]);
}
};
问题是:信息总是未定义的(似乎文档关于版本是错误的)。每次在 RangePicker 上触发 onChange 或 onCalendarChange 事件时,我都会得到两个日期,并且我想分别检测这些事件,以便我可以明确知道开始日期何时更改或结束日期何时更改。如果没有 onStartDateChange,我该如何实现?
解决方案
好吧,好像你已经在你的州保存日期了。您可以做的是将 onCalendarChange 函数的日期与您所在州保存的日期进行比较。这样你就知道哪个变了。
PS:我认为它是这样工作的,因为您似乎可以在同一个更改中同时更改开始日期和结束日期?
推荐阅读
- java - java.lang.NoClassDefFoundError:解析失败:Landroid/view/autofill/AutofillManager$AutofillCallback
- c# - 使用意图方法调用活动
- sql - 通过更改列进行 SQL 组
- html - 在表格行悬停时,在保持表格行高度不变的情况下,使元素的字体大小变大
- gradle - 自定义 Gradle War 任务找不到 Zip
- python - 如何在两个日期之间创建字段周
- angular - 如何在单独的 Angular Firestore 集合上进行内部连接?
- java - 使用通配符使用 RedisTemplate zSet 从 redis 中获取所有值并删除所有值
- r - 当我可以执行密度图时,为什么我的朴素贝叶斯分类器会出现 Density.default 错误?
- c++ - 函数制表和包装