Nnp*_*Nnp 3 reactjs react-table react-hook-form react-forms
我正在研究一个复杂的反应形式,它几乎没有受控输入以及网格/表格。目前我正在使用react-hook-form进行验证。
这是我的模型。这里的想法是根据需要显示网格,直到用户添加一些数据。用户可以通过单击“+”或“-”按钮添加/删除数据。

当我在这里提交时,我在提交的数据中看到的是
{
"fname": "sasa",
"lname": "asasasa"
}
Run Code Online (Sandbox Code Playgroud)
这是预期的输出
{
"fname": "sasa",
"lname": "asasasa",
"localAddress":[
{
"street1":"street1",
"street2":"street2",
"city":"city"
},
{
"street1":"street2",
"street2":"street2",
"city":"city"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是我的codesanbox
Codesanbox
不知道如何将react-table(或任何表组件)与react-hook-form(或任何react形式)集成。使用“react-table”构建表单对我来说是必须的。
感谢任何帮助。
正如“使用 UI 库”部分的入门文档中所述:
选项 3:我们可以使用 Hook 设置自定义寄存器
useEffect并通过 更新值setValue。
因此,您的情况需要执行以下操作:
export default function App() {
const { register, handleSubmit, setValue } = useForm();
// ...
React.useEffect(() => {
register({ name: "localaddress" });
}, [register]);
const addLocalAddress = function() {
// ...
setValue("localaddress", d);
setLocalAddress(d);
};
// ...
}
Run Code Online (Sandbox Code Playgroud)
有了这个,你需要Controller通过替换它来摆脱它:
<Controller
name="tag"
control={methods.control}
as={
<Table1
name="tag"
ref={methods.register}
columns={columns}
data={localAddress}
{...methods}
/>
}
/>;
Run Code Online (Sandbox Code Playgroud)
有了这个:
<Table1 columns={columns} data={localAddress} />
Run Code Online (Sandbox Code Playgroud)
应该是这样。当然还有沙盒。
| 归档时间: |
|
| 查看次数: |
8368 次 |
| 最近记录: |