我有一个父级组件,可呈现2个孩子字段组件。
孩子组件有2个道具,我用于验证。首先,我可以用来触发该组件的验证检查的validateOnLoad
。第二个道具是onValidation
Prop,一旦验证完成后,我用来执行回调。回调将通过验证的fieldID
和validationResults
传递。
在父母中,我有一个跟踪confirmEntry
状态的状态。当单击提交按钮时,这会跟踪。父母还具有称为firstErrorField
的ref
(自我解释(。
我要做的是以下内容:
- 用户单击提交。
- 这将
confirmEntry
状态设置为true
。更改此状态应导致我的父母重新渲染。 - 现在
true
的CC_11的值传递到儿童的validateOnLoad
Prop中。这触发了孩子组成部分的验证。 - 验证完成后,我需要执行以下操作:
- 检查验证结果。
- 如果有验证失败标记
firstErrorField
的fieldID
,我从验证中返回。 - 将
confirmEntry
设置为false
,因为我不希望提交继续进行。 - 将重点移至此特定字段,以便用户知道他们需要解决哪些字段。
- 但是,如果验证成功继续进行提交。
我在与useEffect
一起使用的时间最困难。
这是一个具有实现的代码和框。在类实施中,您将看到检查验证,仅在两个表单字段有效时才进行。但是,在挂钩实施中,即使尚未验证字段,表格也会继续。
在此方面的任何帮助将不胜感激。
这是我对上述问题的解决方案。从本质上讲,它归结为了解使用效果的关闭。
https://codesandbox.io/s/zw1lp4985l