Ant Design Mobile DatePicker 报错 defaultValue will not work on controlled Field

Ant Design About 1,301 words

错误信息

[antd-mobile: Form.Item] defaultValue will not work on controlled Field. You should use initialValues of Form instead.

错误原因

DatePicker上定义的defaultValue不会受ReactuseState控制。

const [date, setDate] = useState(new Date);

<Form layout='vertical'>
    <Form.Item
        name='date'
        label='日期'
        trigger='onConfirm'
        onClick={(e, datePickerRef: RefObject<DatePickerRef>) => {
            datePickerRef.current?.open()
        }}
    >
        <DatePicker value={date} defaultValue={date}>
            {
                value => {
                    setDate(value);
                    return formatDate(value);
                }
            }
        </DatePicker>
    </Form.Item>
</Form>

解决

Form.Item上定义initialValue并传入useState定义的变量。

const [date, setDate] = useState(new Date);

<Form layout='vertical'>
    <Form.Item
        name='date'
        label='日期'
        trigger='onConfirm'
        onClick={(e, datePickerRef: RefObject<DatePickerRef>) => {
            datePickerRef.current?.open()
        }}
        initialValue={date}
    >
        <DatePicker value={date}>
            {
                value => {
                    setDate(value);
                    return formatDate(value);
                }
            }
        </DatePicker>
    </Form.Item>
</Form>
Views: 14 · Posted: 2025-11-15

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓
Today In History
Browsing Refresh