我目前正在处理注册表单,以下是我的代码片段:
const Signup = () => {
const [username, setUsername] = useState('')
const [email, setEmail] = useState('')
const [password, setPassword] = useState('')
const [passwordConfirmation, setPasswordConfirmation] = useState('')
const clearState = () => {
setUsername('')
setEmail('')
setPassword('')
setPasswordConfirmation('')
}
const handleSubmit = signupUser => e => {
e.preventDefault()
signupUser().then(data => {
console.log(data)
clearState() // <-----------
})
}
return <JSX />
}
export default Signup
每个状态都用于表单的受控输入。
基本上我想要做的是在用户成功注册后,我希望状态回到初始状态并清除字段。
在 clearState
中手动将每个状态设置回空字符串是非常必要的,我想知道 React 是否有一种方法或函数可以将状态重置回其初始值?
原文由 avatarhzh 发布,翻译遵循 CC BY-SA 4.0 许可协议
遗憾的是,没有内置方法可以将状态设置为其初始值。
您的代码看起来不错,但如果您想减少所需的功能,您可以将整个表单状态放在单个状态变量对象中并重置为初始对象。
例子