Antd datepicker(date.clone 不是函数)

Gun*_*a92 8 momentjs reactjs antd react-hooks

我有一个反应应用程序。有一个复选框可以禁用日期选择器。但是当我使用复选框禁用它时,我无法选择任何日期。如果我删除复选框及其功能,则没有错误。我有 date.clone 不是函数错误。有人能帮助我吗 ?谢谢

const dateFormat = "YYYY-MM-DD";
const today = moment();

const [date, setDate] = useState(today);
const [disabled, setdisabled] = useState(false);



const onCheckboxHandle = (e) => {
    if (e.target.checked) {
      setwarntill(moment("2090-10-10"));
      setdisabled(true);
    } else {
      setwarntill(today);
      setdisabled(false);
    }
  };

<Checkbox onChange={onCheckboxHandle}>Süresiz</Checkbox>
        <Form.Item name={["user", "timetill"]} label="Uyar? Biti? Tarihi">
          <ConfigProvider locale={locale}>
            <DatePicker
              defaultValue={moment()}
              format={dateFormat}
              onChange={(date,dateString) => setwarntill(dateString)}
              value={warntill}
              disabled={disabled}
            />
          </ConfigProvider>
        </Form.Item>
Run Code Online (Sandbox Code Playgroud)

小智 12

将 valuePropName 添加到 <Form.Item>

例如

<Form.Item valuePropName={'date'}>
    <DatePicker/>
</Form.Item>
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用。关键部分是 &lt;Form.Item&gt; 内的 DatePickers 引发错误。感谢你的回答! (2认同)

小智 9

在 moment 的帮助下解析日期对我有用 moment(myDate)


小智 6

DatePicker组件放在 <Form.Item > <Form.Item /> 之外,并检查它是否可以正常工作。

         <DatePicker
            format={"YYYY-MM-DD"}
            onChange={(date, dateString) =>
              this.handleDatepickerChange(date, dateString)
            }
            placeholder="Start Date"
            value={
              this.state.startDate !== ""
                ? moment(this.state.startDate)
                : ""
            }
          />
Run Code Online (Sandbox Code Playgroud)