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

Ant Design RangePicker 日期区间组件可以使用 open 属性实现外部按钮控制展开收起。

但是使用 open 属性后,就只能通过属性控制展开和收起,失焦收起和聚焦展开等原生的功能就失效了。

RangePicker_open.png Ant Design RangePicker日期区间组件同时兼容原生和外部按钮控制实现 经验总结

可不可以既能通过点击 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日期区间组件同时兼容原生和外部按钮控制实现

赞 (0)
分享到: +

评论 沙发

Avatar

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)