我有组件,在每个组件中,我都有一个表单,点击下一个我打开一个新表单(调用新组件),当它是最后一个时,我将其更改为提交。
我想要达到的目标
1:在每次下一步和返回单击时,我想使用 react-form-hook 验证我的表单
2:点击提交我应该能够看到所有的数据
3:点击后面的数据不应该从输入中丢失
问题
因此,对于验证,我使用react-hook-form,因为它使用起来非常简单,但是在这里我无法找到,因为我的按钮不在它们位于主要组件中的表单内,所以我将如何验证并提交表单提交点击所有数据。
我的代码
import React, { useState } from "react";
import Form1 from "./components/Form1";
import Form2 from "./components/Form2";
import Form3 from "./components/Form3";
function AddCompanyMain() {
const [currState, setCurrState] = useState(1);
const [allState, setAllstate] = useState(3);
const moveToPrevious = () => {
setCurrState(currState - 1);
};
const moveToNext = () => {
setCurrState(currState + 1);
};
return (
<div>
<div class="progress">
<div>{currState}</div>
</div>
{currState === 1 && <Form1 />}
{currState === 2 && <Form2 />}
{currState === 3 && <Form3 />}
{currState !== 1 && (
<button
className="btn btn-primary"
type="button"
onClick={moveToPrevious}
>
back
</button>
)}
{currState !== allState && (
<button className="btn btn-primary" type="button" onClick={moveToNext}>
next
</button>
)}
{currState === 3 && (
<button className="btn btn-primary" type="submit">
Submit
</button>
)}
</div>
);
}
export default AddCompanyMain;
我的完整代码代码沙箱
我只是在寻找一种好的方法,因为这里我不能在每个组件中都提交,因为我必须在顶部显示步骤。