Ant Design RangePicker 日期区间组件可以使用 open 属性实现外部按钮控制展开收起。
但是使用 open 属性后,就只能通过属性控制展开和收起,失焦收起和聚焦展开等原生的功能就失效了。
![]()
可不可以既能通过点击 RangePicker 组件展开日历弹窗,又可以通过外部按钮控制呢,答案是可以。
我想了一下,如果不使用 open 属性,也就是 open 的值是 undefined ,那么判断一下,如果控制 open 的变量为 true 时使用变量控制,为 false 时给 open 赋值为 undefined 不就可以实现了。
代码如下:
const [dateOpen, setDateOpen] = useState(false); // 往返日期弹窗控制
...
<RangePicker
open={newDateOpen ? newDateOpen : undefined}
onChange={(date) => {
if (date?.[0] && date?.[1]) {
setNewDateOpen(false);
}
}}
/>
<Button
onClick={() => setDateOpen(!dateOpen)}
/>
调整日期
</Button>未经允许不得转载:前端资源网 - w3h5 » Ant Design RangePicker日期区间组件同时兼容原生和外部按钮控制实现
前端资源网 - w3h5