Почему меня не перенаправляют на выбранный мной путь? React Router - PullRequest
0 голосов
/ 07 января 2019

У меня небольшая проблема, у меня есть система авторизации, и я хочу перейти к ней при входе в систему или регистрации. Моя страница перенаправляет на основной путь /, но он не работает.

Я пытаюсь сделать это:

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

Где проблема?

1 Ответ

0 голосов
/ 07 января 2019

Кажется, что вы сделали опечатку при деконструкции своего состояния:

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