Ant Design RangePicker日期区间组件同时兼容原生和外部按钮控制实现

2023-08-25 13:44:40 浏览数 (2)

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日期区间组件同时兼容原生和外部按钮控制实现

0 人点赞