antd 的表单使用问题

我想在表单里面放一个日期选择器

<Form.Item labelCol={{ span: 8 }} wrapperCol={{ span: 14 }} label="推广结束时间">
            {this.props.form.getFieldDecorator('type', {
              initialValue: this.props.data.endTime ? moment(Number(this.props.data.endTime)).format('YYYY/MM/DD') : '-' ,
            })(
              <DatePicker format='YYYY-MM-DD'/>
            )}
          </Form.Item>

但是这样写会报错 Cannot read property 'endTime' of null 。可是data里面有endTime属性,而且endTime也有值,我用data里面的其它属性写的表单都没有问题,只有时间类的有问题

阅读 3.5k
4 个回答

图片描述

format 之后返回的是 string 类型

你的initialValue时间格式不太对吧

this.props.data ,是this的指向问题把?
getFieldDecorator()()第一个括号里面的this不知道指向谁了,你不能都解构赋值出来? 这代码风格确实很烂。。 明摆着是this.props.data 是null啊

要不然就是把 this.props.data. 这些代码用{}包起来试试 不知道JSX是不是把你这段代码解析成字符串了

你需要给 data 指定默认值 {} ,在初始化的时候 data 可能没有设置值,所以你要 const { data={} } = this.props

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题