【发布时间】:2022-01-01 17:10:10
【问题描述】:
表单验证不适用于 React strap 和 React hook 表单版本 7。 在上面的沙盒项目中,当我单击提交按钮而不在 bio 输入中输入文本时,需要获取错误 bio 字段。然后当我在该字段上键入时,错误消息不会消失。 版本 7 与普通的 HTML 表单和元素配合得很好。但与 reactstrap 发生冲突。
反应版本:17.2 React 钩子形式版本:7.22 Reactstrap 版本:9.0
import "./styles.css";
import { Form, FormGroup, Input, Label, Button } from "reactstrap";
import * as Yup from "yup";
import { useForm } from "react-hook-form";
import { yupResolver } from "@hookform/resolvers/yup";
export default function App() {
const schema = Yup.object().shape({
bio: Yup.string().required()
});
const {
register,
handleSubmit,
reset,
formState: { errors }
} = useForm({
resolver: yupResolver(schema)
});
const submitHandle = (data) => {
console.log(data);
};
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<Form onSubmit={handleSubmit(submitHandle)} onReset={reset}>
<FormGroup>
<Label for="bio">Bio</Label>
<Input id="bio" name="bio" type="text" {...register("bio")} />
{errors.bio && <p className="invalid">{errors.bio.message}</p>}
</FormGroup>
<FormGroup>
<br/>
<Button color="primary">Save</Button>
</FormGroup>
</Form>
</div>
);
}
【问题讨论】:
标签: javascript reactjs react-hook-form reactstrap