React中关于antd的RangePicker自定义清空

虽然这边写的是RangePicker,但是其他日期等同理

官方文档没有写出自定义清空时间的函数,但是我们可以通过hooks对onChange和value来进行对这个组件的值进行控制

需要注意的点是关于范围的时间组件中

value的类型为   value={【moment(时间戳),moment(时间戳)】}

并且在onChange进行对value的赋值的同时,需要通过onchange获取的参数 是否为null,来判断是否是点击清空按钮而执行的函数

在清空值的时候需要把value设置成为【undefind,undefind】,并且通过判断设置value是否为undefind还是时间戳组件,如果没有判断,就算你清空了,moment(undefind)为当前时间,这种情况下清空之后就会变成当前时间而不是空值

👇上代码

           //setSelectedKeys为hooks           
              <RangePicker
              size={'small'}
              format="YYYY-MM-DD"
              value={
                selectedKeys[0] ? [moment(selectedKeys[0]), moment(selectedKeys[1])] : selectedKeys
              }
              // key={[moment(selectedKeys[0]), moment(selectedKeys[1])]}
              onChange={(e, x) => {
                if (e === null) {
                  setSelectedKeys([undefined, undefined]);
                } else {
                  setSelectedKeys([moment(e?.[0]).valueOf(), moment(e?.[1]).valueOf()]);
                }
              }}
            />
            <Button
              onClick={() => {
                setSelectedKeys([undefined, undefined]);
              }}
            >
              重置
            </Button>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值