我有一个表单到目前为止只有两个字段,电子邮件和密码和一个按钮。两个输入都是状态和验证的,所以我有状态。email,isValid和state.pw.isValid.
我想控制Submit按钮,使其仅在电子邮件和密码都有效时才激活。我读到,由于React调度状态更新的方式,当使用多个状态时,你可能无法获得最新的状态,而useEffect可以确保这一点。
所以我的问题是,我可以设置一个state.form.isValid来控制对提交按钮的访问并更新这个(setFormIsValid (state.email。isValid,,state.pw.isValid)(在useEffect中使用依赖[state.email.]isValid state.password.isValid]吗?
所以我根据另外两个状态更新一个状态。
您有2个文本字段。从逻辑上讲,每次只更新一个字段(除非是填充文本字段的机器人)。所以,在这个特定的情况下,状态更新将一个接一个地发生,你几乎可以保证总是获得最新的状态。
除非有其他因素影响组件,否则添加useEffect然后根据依赖项在这个useEffect中设置一个新状态可能是多余的。
每个setState触发一次渲染。因此,如果不是绝对必要,则不需要基于其他2个状态进行新状态设置。