antd 报错 value.locale is not a function

报错信息:

 value.locale is not a function

Uncaught Error: The value/defaultValue of DatePicker or MonthPicker must be a moment object after 

 从截图不难看出是,DatePicker或者 RangePicker 时间选择器使用时的错误。

1.给DatePicker或者 RangePicker  赋值 它的值必须是moment对象。

所以需要赋值时,用moment转换一下,出现这个错误主要就是赋值时,不是moment对象或者直接就是null、undefined

例如:

 这个就是,直接赋值,time是字符串就会出现上面的报错。

class Index extends Component {
    constructor(props) {
        super(props);
        this.state = {
            time:"2015/01/01"
        }
    }
    componentDidMount() {
      
    }
    render() {
        const dateFormat = 'YYYY/MM/DD';
        const {time}=this.state;
        return (
            <div>

                <DatePicker defaultValue={time} format={dateFormat} />
            </div>
        )
    }

}
export default Index

解决方案:

 <DatePicker defaultValue={moment(time)} format={dateFormat} />

如果time不是一直都存在,或者有可能没值就需要判断一下

 <DatePicker defaultValue={time&&moment(time)} format={dateFormat} />
//或者三目
 <DatePicker defaultValue={time?moment(time):undefined} format={dateFormat} />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

崽崽的谷雨

漫漫前端路,摸爬滚打

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值