useForm 的默认值未使用 useFormContext 正确更新

DefaultValues from useForm is not updated correctly with useFormContext

参见示例:https://codesandbox.io/s/sad-franklin-d4o5z

useForm 中设置的默认值本身工作正常。但是,当它与 useFormContext 一起使用时,它无法正常运行;因为它只需要第一个初始化。值。

在示例中,当弹出对话框时,目标值更改为“test”,我希望该值也被“test”填充。但是,它没有用。

通过 useForm 设置 defaultValue 只会在初始渲染时设置表单值。它的行为类似于 useState,它也只会在第一次渲染时使用传递的参数。

所以你有两个选择:

  • 仅当 detailOpen 设置为时才有条件地呈现对话框 true

  • 使用来自 RHF 的 reset

您的 <Details /> 组件中也有一个小错字。您将 <Controller /> 名称 属性 设置为“数字”而不是“名称”。