如何在Antd DatePicker中将选定日期设置为默认日期?
Antd DatePicker设置默认日期不生效解决方案
你可以根据你的使用场景对应修改:
- 如果仅需要设置初始默认日期,不需要后续对日期选择器做受控控制,直接将
value属性替换为defaultValue即可:
<DatePicker allowClear={false} placeholder="Select date" onChange={this.changeDate} defaultValue={moment(this.props.choosenDate)} />
- 如果需要使用受控模式绑定日期值,需满足两个条件:
onChange触发的changeDate方法需同步更新this.props.choosenDate对应的父组件状态,保证props值实时同步- 确保
this.props.choosenDate为合法日期格式,可添加边界判断避免异常:value={this.props.choosenDate ? moment(this.props.choosenDate) : null}
- 若日期格式不匹配导致渲染异常,可显式指定
format属性对齐格式,示例如下:
<DatePicker allowClear={false} placeholder="Select date" onChange={this.changeDate} value={moment(this.props.choosenDate, 'YYYY-MM-DD')} format="YYYY-MM-DD" />
- 如果你使用的是Antd 5.x及以上版本,官方默认已弃用moment改为dayjs作为日期处理库,需将代码中的moment替换为dayjs:
import dayjs from 'dayjs' <DatePicker allowClear={false} placeholder="Select date" onChange={this.changeDate} defaultValue={dayjs(this.props.choosenDate)} />
内容的提问来源于stack exchange,提问作者Svetlana
相关产品推荐
相关产品推荐

