[英]useEffect not working the same as componentDidUpdate
我有一个父表单组件,它呈现2个子字段组件。
子组件有2个用于验证的道具。 首先,我可以用来触发对该组件的验证检查的validateOnLoad
。 第二个支柱是onValidation
prop,我在验证完成后用它来执行回调。 回调将传回validationResults
的fieldID
和validationResults。
在父级中,我有一个跟踪confirmEntry
状态的状态。 这会跟踪单击“ 提交”按钮的时间。 父级也有一个名为firstErrorField
的ref
(自解释)。
我想要做的是以下内容:
confirmEntry
状态设置为true
。 更改此状态应该导致我的父级重新呈现。 true
的confirmEntry
值将传递给子confirmEntry
的validateOnLoad
prop。 这会触发子组件的验证。 firstErrorField
使用我从验证中返回的fieldID
标记firstErrorField
。 confirmEntry
设置为false
因为我不希望继续提交 。 我正在努力使用useEffect
来解决这个useEffect
。
这是一个包含两种实现的代码框 。 在类实现中,您将看到验证已被检查,并且只有在两个表单字段都有效时才会进行验证。 但是,在钩子实现中,即使尚未验证字段,表单也会继续。
任何帮助将不胜感激。
这是我对上述问题的解决方法。 它主要归结为理解useEffect上的闭包。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.