我有一个表单页面,如果按下“返回”按钮,我需要显示一个对话框,询问用户是否只在表单更改时才保存表单。有没有一种方法可以轻松地检查表单是否已经更改,而不必将每个字段与initialValues对象进行比较?
initialValues
sz81bmfz1#
到目前为止,我发现的最好的解决方案是使用lodash.isEqual。然后,您可以比较props initialValues和values,以检查是否有任何更改。
values
vyu0f0g12#
您可以通过访问formik.touched浏览触摸的字段
formik.touched
Docs
eagi6jfj3#
您可以创建一个布尔标志(状态),并在每个字段的onChange事件中将其更改为true。
onChange
true
krcsximq4#
formik在formik“props”中有一个名为“dirty”的变量。它是自动计算的。https://formik.org/docs/api/formik#dirty-boolean
4条答案
按热度按时间sz81bmfz1#
到目前为止,我发现的最好的解决方案是使用lodash.isEqual。然后,您可以比较props
initialValues
和values
,以检查是否有任何更改。vyu0f0g12#
您可以通过访问
formik.touched
浏览触摸的字段Docs
eagi6jfj3#
您可以创建一个布尔标志(状态),并在每个字段的
onChange
事件中将其更改为true
。krcsximq4#
formik在formik“props”中有一个名为“dirty”的变量。它是自动计算的。https://formik.org/docs/api/formik#dirty-boolean