【问题标题】:Why am I not being redirect to my selected path? React Router为什么我没有被重定向到我选择的路径?反应路由器
【发布时间】:2019-06-02 08:44:03
【问题描述】:

我有一个小问题,我有一个身份验证系统,我想在登录或注册时导航到该系统。我的页面重定向到主路径 / 但它不起作用。

我正在尝试这样做:

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 });
        })

问题出在哪里?

【问题讨论】:

  • 如果您不告诉我们问题出在哪里,我们无法知道问题出在哪里
  • 你需要知道什么?
  • 您遇到错误了吗?到目前为止你得到了什么?你期待发生什么?我只注意到您的代码中有一个问题,但我不知道它是否能解决您的问题
  • 我希望在我登录或注册时将我的页面重定向到主要路径,那是

标签: javascript reactjs react-router router


【解决方案1】:

您在解构状态时似乎打错了:

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>
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 2018-08-13
    • 1970-01-01
    相关资源
    最近更新 更多