Ant Design RangePicker 日期区间组件可以使用 open
属性实现外部按钮控制展开收起。
但是使用 open
属性后,就只能通过属性控制展开和收起,失焦收起和聚焦展开等原生的功能就失效了。
可不可以既能通过点击 RangePicker 组件展开日历弹窗,又可以通过外部按钮控制呢,答案是可以。
我想了一下,如果不使用 open
属性,也就是 open
的值是 undefined
,那么判断一下,如果控制 open
的变量为 true
时使用变量控制,为 false
时给 open
赋值为 undefined
不就可以实现了。
代码如下:
代码语言:javascript复制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-Web前端开发资源网 » Ant Design RangePicker日期区间组件同时兼容原生和外部按钮控制实现