【发布时间】:2021-11-02 19:51:05
【问题描述】:
我有以下表格:
<form onSubmit={handleSubmit(onSubmit)}>
<Controller
name="voucherPrice"
control={control}
defaultValue={false}
rules={{ required: true }}
render={({ field: { onChange, value, ref } }) => (
<Input {...field} onChange={(ev) => handlePriceInputChange(ev)} value={price} type="number" innerRef={ref} />
)}
/>
<p>{errors.voucherPrice?.message}</p>
<Button
variant="contained"
sx={{ mt: 1, mr: 1 }}
type="submit"
>
{"Continue"}
</Button>
</form>
并使用此配置:
function PriceSelection(props) {
const {
register,
handleSubmit,
control,
formState: { errors },
} = useForm({
resolver: yupResolver(schema),
});
const onSubmit = (data) => {
console.log("does not work?", data);
};
const classes = useStylesPriceSelection();
const [selected, setSelected] = useState(false);
const [price, setPrice] = useState("");
const handlePriceInputChange = (ev) => {
console.log("change", price);
setPrice(parseInt(ev.target.value));
};
当我按下提交按钮时,函数onSubmit 没有触发。此外,我希望输入字段默认填充状态price,并且当我按下提交按钮时,它的值将与函数onSubmit 上的参数data 一起发送。
【问题讨论】:
-
你不想在
onSubmit中调用你的handleSubmit函数,而不是你想做的onSubmit={handleSubmit(onSubmit)}onSubmit={() => handleSubmit(onSubmit)}。你到底想做什么?因为您正在尝试 console.logdata但您没有将任何数据传递到函数中。 -
用那个控制台日志我只是想看看数据是否通过
标签: reactjs react-hooks react-hook-form yup