我有一个父表单组件,可呈现2个子字段组件。
children组件具有2个用于验证的道具。首先,我可以使用validateOnLoad
来触发对该组件的验证检查。第二个道具是onValidation
道具,验证完成后,我将使用它来执行回调。回调将传回验证的fieldID
和validationResults
。
在父级中,我有一个跟踪confirmEntry
状态的状态。它跟踪单击 Submit 按钮的时间。父母也有一个ref
(firstErrorField
(自我解释))。
我想做的是以下事情:
confirmEntry
的状态设置为true
。更改此状态应导致我的父母重新渲染。confirmEntry
的值现在为true
,被传递到孩子的validateOnLoad
道具中。这将触发对子组件的验证。firstErrorField
标记为fieldID
。confirmEntry
设置为false
,因为我不希望 Submit 继续。我很难与useEffect
一起使用。
这是一个codesandbox,具有两个实现。在类实现中,您将看到验证已选中,并且仅在两个表单字段均有效时才继续进行。但是,在挂钩实现中,即使尚未验证字段,表单提交仍会继续。
在此方面的任何帮助将不胜感激。