可能原因:
-
清空操作没有按照
RangePicker
组件的要求来进行,比如直接设置了value
为null
或[]
。 -
使用了
RangePicker
的onChange
事件处理函数不正确,没有正确更新组件的状态。
解决方法:
-
确保使用
RangePicker
组件的value
属性时,始终传递数组,即使要清空日期也要传递[]
,而不是null
。 -
在
onChange
事件处理函数中,当用户清空日期时,更新value
为[]
。
javascript
import React, { useState } from 'react';
import { DatePicker } from 'antd';
const { RangePicker } = DatePicker;
const MyComponent = () => {
const [dateRange, setDateRange] = useState([]); // 初始化为空数组
const handleDateChange = (dates, dateStrings) => {
// 当用户清空日期时,dates 和 dateStrings 都会是 undefined
if (!dates) {
setDateRange([]); // 清空日期
} else {
setDateRange(dates); // 更新日期范围
}
};
return (
<RangePicker value={dateRange} onChange={handleDateChange} />
);
};
export default MyComponent;