【发布时间】:2021-06-16 16:19:22
【问题描述】:
我是 ReactJs 的新手,我有一个使用 react-hook-form 验证的表单。每当我提交表单时,都会显示错误,这很好,但是在更新输入字段后,错误仍然存在。我希望在输入字段更改后隐藏错误。 我知道应该用钩子来完成,但由于我是 React 新手,所以我无法编写我的逻辑。
这是我的代码。
export default function SimpleCard() {
const classes = useStyles();
const { register, handleSubmit, errors, reset } = useForm();
const onSubmit = (data, event) => {
event.preventDefault();
console.log(JSON.stringify(data));
reset();
}
return (
<div className={classes.card}>
<Card className={classes.cardBorder} elevation={12}>
<CardContent>
<Typography className={classes.title}>
Log in
<br/>
<span className={classes.subtitle}>(Employee Only)</span>
</Typography>
<hr/>
</CardContent>
<form onSubmit={handleSubmit(onSubmit)} className={classes.root}>
<TextField
size="normal"
placeholder="Enter Your E-mail Address"
label="Email Address"
variant="outlined"
fullWidth
name="email"
inputRef={register({
required: "E-mail Address is required.",
})}
error={Boolean(errors.email)}
helperText={errors.email?.message}
/>
<TextField
size="normal"
placeholder="Enter Your Password"
label="Password"
variant="outlined"
type="Password"
fullWidth
name="password"
inputRef={register({
required: "Password is required.",
})}
error={Boolean(errors.password)}
helperText={errors.password?.message}
/>
<div className={classes.dokmaBG}>
<Button type="submit" variant="contained" size='large' className={classes.dokma}>
<b>Login</b>
</Button>
</div>
</form>
</Card>
</div>
);
}
有人可以指导我如何在输入字段更新后使用钩子隐藏错误消息吗?
【问题讨论】:
-
我认为正如documentation 中所述,您可以将
mode作为选项传递给useForm,以指示何时运行验证。您可能想试试{mode: 'onChange'}看看是否有帮助。
标签: javascript reactjs react-hooks material-ui