我有一个包含KeyboardDatePicker
from的表单,material UI
我希望它有一个空字符串值 ( ""
) 作为默认值,当没有值传递给useForm
该字段的挂钩时。
到目前为止,这是我的实现:
日期选择器输入字段:
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<Controller
name="date"
control={control}
rules={{ required: true }}
defaultValue={getValues().date || ""}
as={
<KeyboardDatePicker
autoOk
inputVariant="outlined"
format="yyyy-MM-dd"
margin="normal"
id="date-picker-inline"
label="Date"
placeholder="yyyy-mm-dd"
required
error={!!errors.date}
helperText={errors.date && "Incorrect entry."}
onChange={() => {}}
value={() => {}}
KeyboardButtonProps={{
"aria-label": "change date",
}}
/>
}
/>
</MuiPickersUtilsProvider>
这是我的表格钩子:
const { handleSubmit, getValues, control, register, errors, setValue } = useForm<Project>({
submitFocusError: false,
mode: "onBlur",
defaultValues: project,
});
我正在使用 a project
but project
can be设置表单的默认值,null or undefined
并且date
属性project
can also be null
。如果是这种情况,我希望默认值为空字符串。
可悲的是,通过这个实现,当我从一个空字段中选择一个日期时,Date
我收到一个警告,告诉我我不应该将 text 类型的不受控制的输入更改为受控的输入,并且label
输入堆栈的值高于 value :
DatePicker
甚至可以在不破坏所有内容的情况下将空字符串作为 a 的默认值吗?如果可能,应该如何实施?