Компонент перенаправления не меняет URL (React) - PullRequest
0 голосов
/ 16 марта 2020

Я создаю Signup компонент, который должен перенаправить на путь root, если пользователь передал всю информацию.

Однако компонент Redirect по какой-то причине не работает, так как URL не изменяется. На line 12 я регистрирую in renderRedirect и вижу это сообщение в своей консоли, поэтому я нахожусь внутри метода renderRedirect, но, как я уже сказал, url остается неизменным localhost:3000/signup m вместо того, чтобы изменить на localhost:3000/.

Есть идеи почему?

import React from "react";
import { Redirect } from "react-router-dom";

class Signup extends React.Component {
  state = {
    password: "",
    fullName: "",
    email: ""
  };

  renderRedirect = () => {
    console.log("in renderRedirect");
    return <Redirect push to="/" />;
  };

  handleInputChange = e => {
    const value = e.target.value;
    const name = e.target.name;
    this.setState({ [name]: value });
  };
  handleSignup = () => {
    this.props.onSignup(
      {
        username: this.state.username,
        password: this.state.password,
        fullName: this.state.fullName,
        email: this.state.email
      },
      () => this.renderRedirect()
    );
  };
  render() {
    return (
      <div className="login-wrap">
        <h2>Sign Up</h2>

        <div className="form">
          <input
            type="text"
            placeholder="Full Name"
            name="fullName"
            value={this.state.fullName}
            onChange={this.handleInputChange}
          />
          <input
            type="email"
            placeholder="Email address"
            name="email"
            value={this.state.email}
            onChange={this.handleInputChange}
          />
          <input
            type="password"
            placeholder="Password"
            name="password"
            value={this.state.password}
            onChange={this.handleInputChange}
          />
          <button onClick={this.handleSignup}>Sign up</button>
        </div>
      </div>
    );
  }
}

export default Signup;

1 Ответ

0 голосов
/ 16 марта 2020

Я бы пропустил 'pu sh' из компонента перенаправления и посмотрел, работает ли он. В противном случае вы можете использовать объект истории и использовать вместо этого this.props.history.pu sh ('/'). Если у вас нет доступа к routeProps, вы можете обернуть свой компонент регистрации с помощью {withRouter} из'act-router-dom '

...