有一个组件使用自定义输入(CustomInput)并接受一些道具(数据)。我需要在安装组件时立即将道具中的值替换为输入。怎么做?我尝试在defaultValues中输入props中的值,但是没有用。
export const EditPackages = ({action, data}: Props) => {
const { control, handleSubmit, formState:{ errors } } = useForm({
resolver: yupResolver(EditPackagesSchema),
defaultValues: {
price: data.price,
},
});
const onSubmit: SubmitHandler<IEditPackages> = (data: IEditPackages) => {
//...
};
return (
<div className={styles.popup}>
<form
onSubmit={handleSubmit(onSubmit)}
>
<Controller
name="price"
control={control}
render={({ field }) => <CustomInput
placeholder='Price'
value={field.value}
handleChange={field.onChange}
/>}
/>
<DialogButtons
type='submit'
/>
</form>
</div>
);
}
使用setValue更改字段
setValue将名称 from 作为第一个参数defaultValues,在您的情况下是price. 第二个参数是您要更改的值。