javascript - 使用钩子处理/删除组件
问题描述
我正在编写一个用于注册新用户的表单,我希望当
registerNewUser
(POST 方法)返回 200 状态时,它还应该处理/删除表单方法并公开一个新组件,说“谢谢”之类的。
1. 我的表单组件在获得 200 状态时如何处理?
2. 我怎样才能让一个新组件出现?
返回
return (
<form onSubmit={handleSubmit} className="registerAccountContainer">
<input type="email" placeholder="Email" required onChange={handleChange('email')}/>
<input type="password" placeholder="Password" required onChange={handleChange('password')}/>
<button type="submit"> Register Account </button>
</form>
)
处理提交
const handleSubmit = event => {
registerNewUser(user);
event.preventDefault();
}
注册新用户
export const registerNewUser = (user) => { Axios.post('http://localhost:8080/register', user)
.then(function (response) {
return alert("We've sent you mail! Please confirm your user.");
/* THIS IS WHERE I WANT IT TO DISPOSE THE FORM COMPONENT AND
REPLACE IT WITH A NEW SIMPLE <P>'THANK YOU'</P> */
})
.catch(function (error) {
return alert(error);
});
}
任何关于我如何解决这个问题的建议都非常感谢。
解决方案
您需要在本地状态中声明一个新变量并在用户注册时更改它
state = { registered : false }
export const registerNewUser = (user) => { Axios.post('http://localhost:8080/register', user)
.then(function (response) {
this.setState({registered: true})
return alert("We've sent you mail! Please confirm your user.");
})
.catch(function (error) {
return alert(error);
});
}
并检查状态是否已更改,您将更改标签
return ({this.state.registered ? <p>'THANK YOU'</p> :
<form onSubmit={handleSubmit} className="registerAccountContainer">
<input type="email" placeholder="Email" required onChange={handleChange('email')}/>
<input type="password" placeholder="Password" required onChange={handleChange('password')}/>
<button type="submit"> Register Account </button>
</form>}
)
推荐阅读
- php - 气泡通知 Wordpress - 如果 0 则隐藏 / 如果 +1 则显示
- javascript - JS Regex 将零转换为以下范围 XX.xxxxxx
- java - 以最小的质量损失减小 android 中的视频大小
- javascript - Vue-cli 编译的应用程序在某些情况下未初始化
- excel - 将通配符添加到过滤器
- javascript - 如何通过在反应中指定坐标位置(x,y)来触发点击事件?
- mysql - 使用mysql的节点js
- php - Instagram redirect_url 剥离查询字符串
- angular - 如何为浮动离子标签的项目添加轮廓边框
- r - 使用 for 循环删除中间行