我有 2 个用<Controller/>
下拉菜单控制,它们使用相同的数据进行初始化。
它们中的每一个都在不同的路由/渲染组件上
问题是,当我切换路由并且<Controller/>
与下拉菜单相同(但在不同的路由/渲染组件上)渲染时,formState
会变得脏(即使我没有更改下拉菜单中的值)并且您可以看到dirtyFields
数组有脏元素。
如果值相同/没有变化,如何防止表单变脏?
其中一个选项是reset(undefined, { dirtyFields: false })
在安装时使用,但它在路线之间切换时会显着影响性能,因此不适合。
这是两个地方的 Controller & Dropdown 的代码
<Controller
name={ name }
control={ control }
defaultValue={ assignment }
render={ (field) => (
<Dropdown
value={ field.value }
options={ options }
onChange={ onChange(field.onChange) } />
) } />