reactjs React Hook Form -未在编辑模式下正确设置相关选择字段值

ilmyapht  于 2022-12-03  发布在  React
关注(0)|答案(1)|浏览(101)

我正在使用react hook表单实现一个表单,该表单有两个选择字段countrystates。第二个字段根据第一个字段中的选择更改选项。
请参阅以下沙箱了解更多详细信息
创建/提交记录工作正常。

问题是

在编辑中,当我使用setValue()预填充表单中的值时,它不会在UI上设置第二个下拉列表(下面沙箱中的state select)值,但它会显示它已将值设置为字段(请参见控制台中的字段state)。
[程式码沙箱] https://codesandbox.io/s/angry-murdock-h0lbsp?file=/src/App.js

重现步骤

1.在浏览器中打开此沙箱。
1.单击SET ALL VALUES按钮。
1.查看状态选择中的空白值
此外,填充这样的表单(即defaultsValuesuseEffect)的最佳方式是什么?
我在这里错过了什么,所以把它给这里的Maven。谢谢你的时间。

fdbelqdn

fdbelqdn1#

您遇到的问题与setValue有关。此函数在大多数情况下不会触发重新渲染。您可以使用reset来代替。
https://react-hook-form.com/api/useform/reset
此外,如果您希望在没有任何用户交互的情况下填写表单,请在useEffect中使用reset,并使用适当的依赖项。
最后,如果你想让它们只具有初始值而不是undefined,设置defaultValues。官方文件中也建议这样做:
重要提示:应提供正确的默认值并避免undefined。undefined保留用于从内联defaultValue/defaultChecked回退到挂钩级别defaultValues。undefined值与作为默认状态的受控组件冲突
https://react-hook-form.com/api/useform

相关问题