我有一个小问题,我有一个身份验证系统,我想在登录或注册时导航到该系统。我的页面重定向到主要路径/
,但不起作用。
我正在尝试这样做:
render() {
const { redirect } = this.state.redirect;
if (redirect) {
return <Redirect to="/" />;
} else {
return (
<div>
<RegisterForm
data={this.state}
handleChange={this.handleChange}
handleSubmit={this.handleSubmit}
/>
</div>
);
}
}
当我向Firebase注册时,我会使用
.then(() => {
const currentUser = firebase.auth().currentUser;
currentUser.updateProfile({ displayName: this.state.username });
alert("Account created!");
this.setState({ ...this.state, redirect: true });
})
出什么问题了?
答案 0 :(得分:3)
在解构状态时似乎打错了字
render() {
const { redirect } = this.state.redirect;
应该是:
render() {
const { redirect } = this.state;
虽然可能不是唯一的问题
此外,您可以将render
函数简化为以下内容:
render() {
const { redirect } = this.state.redirect;
return redirect ? <Redirect to="/" />
:
<div>
<RegisterForm
data={this.state}
handleChange={this.handleChange}
handleSubmit={this.handleSubmit}
/>
</div>
}