提交值后如何重设antd datepicker?

时间:2019-02-28 07:54:18

标签: reactjs gatsby antd formik yup

在这里,我提供了在codeandbox上工作的示例示例。提交表单后如何重设datepicker值?

    state = {
        setFieldValue: ''
    }

    onChange = (setFieldValue) => {
        this.setState({ setFieldValue: null })
      }


    render() {
        const { values, handleSubmit } = this.props
        return (
            <div align="center">
                <Form onSubmit={handleSubmit}>

                             <Field
                                name="dateofbirth"
                                label="dateOfBirth"
                                component={DateInput}
                                formitemlayout={formItemLayout}
                                value={this.state.setFieldValue}
                                onChange={this.onChange}


                            />


                            <Button type="primary" 
          htmlType="submit">Submit</Button>
}

我的工作代码和邮箱链接为enter link description here

2 个答案:

答案 0 :(得分:1)

您的Datepicker不是受控组件。我将其转换为受控组件,并且在提交表单后重置了日期字段。

<DatePicker
  onChange={(date, dateString) =>
    setFieldValue("dateofbirth", dateString)
  }
  value={dateofbirth !== "" ? moment(dateofbirth) : ""}
/>

Codesandbox link

答案 1 :(得分:0)

与其添加空字符串(因为它会引发propType错误),不如使用null

<DatePicker
  onChange={(date, dateString) =>
    setFieldValue("dateofbirth", dateString)
  }
  value={dateofbirth !== "" ? moment(dateofbirth) : null}
/>