为什么我没有被重定向到我选择的路径?反应路由器
Why am I not being redirect to my selected path? React Router
我有一个小问题,我有一个身份验证系统,我想在登录或注册时导航到该系统。我的页面重定向到主要路径 /
但它不起作用。
我正在尝试这样做:
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 });
})
哪里出了问题?
你在解构你的状态时好像打错了:
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>
}
我有一个小问题,我有一个身份验证系统,我想在登录或注册时导航到该系统。我的页面重定向到主要路径 /
但它不起作用。
我正在尝试这样做:
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 });
})
哪里出了问题?
你在解构你的状态时好像打错了:
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>
}