我在 React 中有各种函数,我需要使用 useState 更改状态,然后根据新状态是否满足某些条件执行一些操作。
当使用 prop="newpassword" 调用 handleChange 时,这将使用 useState 中的 setValues 方法设置 newpassword 的值。然后使用正则表达式测试评估新密码,如果它有效,状态变量 passwordIsValid 应设置为 true。
const handleChange = prop => event => {
setValues({ ...values, [prop]: event.target.value })
if (prop === 'newpassword' && passwordValidation.test(values.newpassword)) {
setValues({ ...values, passwordisValid: true })
console.log(prop, values.passwordisValid)
} else {
console.log(prop, values.passwordisValid)
}
}
状态总是落后一步 - 我知道这是因为 useState 是异步的,但我不知道如何使用 useEffect 来检查状态?钩子很新,有人可以帮我吗?