React에서 양식 유효성 검사 후 사용자를 라우팅하는 방법은 무엇입니까?

잭 테크

저는 반응이 처음이고 SignUp SignIn 프로젝트를 만들려고합니다.

유효성 검사에 성공하면 사용자를 로그인 / 로그인 페이지로 라우팅하려고합니다.

이것은 내 가입 코드입니다.

import React, { Component } from 'react';
import { Link } from 'react-router-dom';
import Axios from 'axios';

const initianValue = {
  username: '',
  password: '',
  nameError: '',
  passError: '',
  dataError: '',
};

class SignUp extends Component {
  constructor(props) {
    super(props);
    this.state = initianValue;
    this.handleInputChange = this.handleInputChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  handleInputChange = (e) => {
    this.setState({
      [e.target.name]: e.target.value,
    });
  };

  validForm() {
    let nameError = '';
    let passError = '';
    let dataError = '';

    const user = {
      username: this.state.username,
      password: this.state.password,
    };

    if (!this.state.username) {
      nameError = 'Enter Name';
    }

    if (user.username !== '' && user.password !== '') {
      Axios.post('http://localhost:9000/checkUser', user)
        .then((res) => this.setState({ dataError: res.data }))
        .catch((err) => console.log(err));
    }

    if (!this.state.password) {
      passError = 'Enter Password';
    }

    if (nameError || passError || dataError) {
      this.setState({
        nameError,
        passError,
        dataError,
      });
      return false;
    }

    return true;
  }

  handleSubmit = (e) => {
    e.preventDefault();
    const isvalid = this.validForm();
    if (isvalid) {
      this.setState(initianValue, () => this.props.history.push('/Signin'));
    }
  };

  render() {
    return (
      <div className='Main'>
        <span className='create'>Create Account</span>
        <div className='SignUp'>
          <form onSubmit={this.handleSubmit}>
            <div className='form-group'>
              <label>Username</label>
              <input
                type='text'
                name='username'
                value={this.state.username}
                className='form-control'
                onChange={this.handleInputChange}
              />
              <div className='error'>
                {this.state.nameError}
                {this.state.dataError}
              </div>
              <br />
              <label>Password</label>
              <input
                type='password'
                name='password'
                value={this.state.password}
                className='form-control'
                onChange={this.handleInputChange}
              />
              <div className='error'>{this.state.passError}</div>
              <br />

              <button type='submit' className='btn btn-primary'>
                Sign Up
              </button>
            </div>
          </form>
        </div>
        <div className='signinForm'>
          <label>
            Already Have Account <Link to='/Signin'> Sign In </Link>
          </label>
        </div>
      </div>
    );
  }
}

export default SignUp;

이것은 로그인 페이지 또는 다음 페이지로 사용자를 보내고 싶습니다.

Redux를 사용해야합니까?

어떻게 할 수 있습니까?

gdh

SignUp구성 요소가 구성 요소 내부에 래핑되어 있다고 가정하면 Router이미 history`props 사용할 수 있어야합니다 .

그래서 간단하게 할 수 있습니다 this.props.history.push. setState상태 설정 후 실행되는 재미있는 두 번째 인수를 사용하십시오 (setState가 비동기이므로)

이렇게

handleSubmit = (e) => {
  e.preventDefault();
  const isvalid = this.validForm();
  if (isvalid) {
    this.setState(initianValue, () => this.props.history.push("/dashboard"));//<----- like this
  }
};

귀하의 경우 SignUp구성 요소의 내부되지 않습니다 Router당신은 사용할 수 있습니다 withRouter을 . SignupwithRouter hoc로 전달하십시오 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

angularjs에서 유효성 검사 후 양식을 제출하는 방법은 무엇입니까?

분류에서Dev

반응에서 양식 유효성 검사 후 사용자를 다음 페이지로 보내는 방법은 무엇입니까?

분류에서Dev

React-redux에서 양식 입력 및 유효성 검사를 처리하는 방법은 무엇입니까?

분류에서Dev

HTML 양식에서 사용자 지정 HtmlInputElement의 유효성을 검사하는 방법은 무엇입니까?

분류에서Dev

React Material-UI TextField 및 Select에 양식 유효성 검사를 적용하는 방법은 무엇입니까?

분류에서Dev

"양식 보내기"버튼을 누른 후에 만 PHP 양식 필드 유효성 검사를 호출하는 방법은 무엇입니까?

분류에서Dev

선택 상자에 대한 양식 유효성 검사를 수행하는 방법은 무엇입니까?

분류에서Dev

양식 유효성 검사 실패 후 템플릿을 렌더링하는 방법은 무엇입니까?

분류에서Dev

브라우저 DevTools를 통해 타사 사이트에서 입력 양식 유효성 검사를 트리거하는 방법은 무엇입니까?

분류에서Dev

ajax 양식 제출을 사용하여 codeigniter 양식 유효성 검사에서 오류를 인라인으로 표시하는 방법은 무엇입니까?

분류에서Dev

반응에서 양식 유효성 검사를 수행하는 방법은 무엇입니까?

분류에서Dev

ember-cli 앱에서 양식 유효성 검사를 구현하는 방법은 무엇입니까?

분류에서Dev

HTML에서 양식 유효성 검사를 추가하는 방법은 무엇입니까?

분류에서Dev

vuetify 양식에서 API를 호출하는 사용자 지정 유효성 검사를 추가하는 방법은 무엇입니까?

분류에서Dev

양식에서 드롭 다운 메뉴의 유효성을 검사하는 방법은 무엇입니까?

분류에서Dev

reset ()에서 양식의 유효성을 검사하지 않는 방법은 무엇입니까?

분류에서Dev

jQuery로 사용자 지정 양식 유효성 검사를 만드는 방법은 무엇입니까?

분류에서Dev

Formik + Yup을 사용하여 유효성 검사 오류가있는 경우 양식 제출시 메서드를 호출하는 방법은 무엇입니까?

분류에서Dev

양식 재설정 react-final-form에서 유효성 검사를 비활성화하는 방법은 무엇입니까?

분류에서Dev

버튼 클릭시 HTML 양식 유효성 검사를 사용하는 방법은 무엇입니까?

분류에서Dev

Play Framework 2에서 양식 도우미없이 전체 양식 유효성 검사 오류 메시지를 얻는 방법은 무엇입니까?

분류에서Dev

jQuery를 사용하여 주입 된 ajax 양식에 여러 유효성 검사를 수행하는 방법은 무엇입니까?

분류에서Dev

특정 레코드 범위 내에서 is_unique 양식 유효성 검사를 사용하는 방법은 무엇입니까?

분류에서Dev

사용자 지정 후크 유효성 검사에서 오류 메시지를 올바르게 표시하는 방법은 무엇입니까?

분류에서Dev

제출시 Angular 7 반응 양식의 유효성 검사를 적용하는 방법은 무엇입니까?

분류에서Dev

제출시 Angular 7 반응 양식의 유효성 검사를 적용하는 방법은 무엇입니까?

분류에서Dev

이름 필드에. (점)이있을 때 angularjs를 사용하여 양식의 유효성을 검사하는 방법은 무엇입니까?

분류에서Dev

zf2에서 양식 유효성 검사 후 계산 된 값을 입력하는 방법

분류에서Dev

이 양식 유효성 검사 스크립트를 반환하기 전에 전체 양식 섹션을 반복하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    angularjs에서 유효성 검사 후 양식을 제출하는 방법은 무엇입니까?

  2. 2

    반응에서 양식 유효성 검사 후 사용자를 다음 페이지로 보내는 방법은 무엇입니까?

  3. 3

    React-redux에서 양식 입력 및 유효성 검사를 처리하는 방법은 무엇입니까?

  4. 4

    HTML 양식에서 사용자 지정 HtmlInputElement의 유효성을 검사하는 방법은 무엇입니까?

  5. 5

    React Material-UI TextField 및 Select에 양식 유효성 검사를 적용하는 방법은 무엇입니까?

  6. 6

    "양식 보내기"버튼을 누른 후에 만 PHP 양식 필드 유효성 검사를 호출하는 방법은 무엇입니까?

  7. 7

    선택 상자에 대한 양식 유효성 검사를 수행하는 방법은 무엇입니까?

  8. 8

    양식 유효성 검사 실패 후 템플릿을 렌더링하는 방법은 무엇입니까?

  9. 9

    브라우저 DevTools를 통해 타사 사이트에서 입력 양식 유효성 검사를 트리거하는 방법은 무엇입니까?

  10. 10

    ajax 양식 제출을 사용하여 codeigniter 양식 유효성 검사에서 오류를 인라인으로 표시하는 방법은 무엇입니까?

  11. 11

    반응에서 양식 유효성 검사를 수행하는 방법은 무엇입니까?

  12. 12

    ember-cli 앱에서 양식 유효성 검사를 구현하는 방법은 무엇입니까?

  13. 13

    HTML에서 양식 유효성 검사를 추가하는 방법은 무엇입니까?

  14. 14

    vuetify 양식에서 API를 호출하는 사용자 지정 유효성 검사를 추가하는 방법은 무엇입니까?

  15. 15

    양식에서 드롭 다운 메뉴의 유효성을 검사하는 방법은 무엇입니까?

  16. 16

    reset ()에서 양식의 유효성을 검사하지 않는 방법은 무엇입니까?

  17. 17

    jQuery로 사용자 지정 양식 유효성 검사를 만드는 방법은 무엇입니까?

  18. 18

    Formik + Yup을 사용하여 유효성 검사 오류가있는 경우 양식 제출시 메서드를 호출하는 방법은 무엇입니까?

  19. 19

    양식 재설정 react-final-form에서 유효성 검사를 비활성화하는 방법은 무엇입니까?

  20. 20

    버튼 클릭시 HTML 양식 유효성 검사를 사용하는 방법은 무엇입니까?

  21. 21

    Play Framework 2에서 양식 도우미없이 전체 양식 유효성 검사 오류 메시지를 얻는 방법은 무엇입니까?

  22. 22

    jQuery를 사용하여 주입 된 ajax 양식에 여러 유효성 검사를 수행하는 방법은 무엇입니까?

  23. 23

    특정 레코드 범위 내에서 is_unique 양식 유효성 검사를 사용하는 방법은 무엇입니까?

  24. 24

    사용자 지정 후크 유효성 검사에서 오류 메시지를 올바르게 표시하는 방법은 무엇입니까?

  25. 25

    제출시 Angular 7 반응 양식의 유효성 검사를 적용하는 방법은 무엇입니까?

  26. 26

    제출시 Angular 7 반응 양식의 유효성 검사를 적용하는 방법은 무엇입니까?

  27. 27

    이름 필드에. (점)이있을 때 angularjs를 사용하여 양식의 유효성을 검사하는 방법은 무엇입니까?

  28. 28

    zf2에서 양식 유효성 검사 후 계산 된 값을 입력하는 방법

  29. 29

    이 양식 유효성 검사 스크립트를 반환하기 전에 전체 양식 섹션을 반복하는 방법은 무엇입니까?

뜨겁다태그

보관