Невозможно перенаправить на страницу профиля после регистрации - PullRequest
1 голос
/ 31 марта 2019

Я просто хочу перенаправить пользователя после регистрации на странице профиля после проверки из файла сервера NodeJS.Я прошел маршруты в index.js вот так:

import { Route, BrowserRouter as Router } from 'react-router-dom';

import Home from './pages/home';
import Signup from './pages/signup';
import Signin from './pages/signin';
import Profile from './pages/profile';

ReactDOM.render(
    <Router>
     <div>
      <Route exact path="/" component={Home} />
      <Route path="/signup" component={Signup} />
      <Route path="/signin" component={Signin} />
      <Route path="/profile" component={Profile} />
     </div>
    </Router>, 
    document.getElementById('root')
);`

.Я использовал this.props.history для перенаправления, а также экспортировал компонент «Регистрация» с withRouter, и я устраняю неполадки, чтобы увидеть, монтируется ли компонент профиля, передав хук componentDidMount, но это не так.Пользовательские данные хорошо сохраняются в базе данных и выдают ошибку:

Здесь запрос не выполнен с кодом состояния 404

, когда я пытаюсь перехватить запрос на публикациюи

xhr.js: 173 GET http://localhost:3000/profile 404 (не найдено)

Я передал "proxy": "http://localhost:4000/" в package.json и withRouter APIв signup.js, однако, это не сработало.

signup.js

import React, { Component } from 'react';
import axios from 'axios';
import queryString from 'querystring';

import { Link, withRouter, Redirect } from 'react-router-dom';

class Signup extends Component {
  constructor() {
    super();
    this.state = {
      username: '',
      password: '',
      repassword: ''
    }
  }

  handleUsernameChange = (e) => {
     e.preventDefault();
     this.setState({
       username: e.target.value
     })
  }

  handlePasswordChange = (e) => {
    e.preventDefault();
    this.setState({
      password: e.target.value
    })
  }


  handlePasswordConfirmChange = (e) => {
    e.preventDefault();
    this.setState({
      repassword: e.target.value
    })
  }


  handleSubmit = (e) => {
    e.preventDefault();

    axios.post('/signup', {
      username: this.state.username,
      password: this.state.password,
      repassword: this.state.repassword
    }).
      then( res => {
        this.props.history.push('/profile');
    }).catch(err => {
      console.log('Here', err.message);
    })

Я пытался перенаправить API реакции-маршрутизатора-dom на importing Redirect from react-router-domи затем заменив this.props.history.push('\profile') на return <Redirect to='\profile' />, но это дало мне Proxy error: Could not proxy request /signup from localhost:3000 to http://localhost:4000/.

package.json

"dependencies": {
    "axios": "^0.18.0",
    "query-string": "^6.4.2",
    "react": "^16.8.5",
    "react-bootstrap": "^1.0.0-beta.6",
    "react-dom": "^16.8.5",
    "react-router-dom": "^4.2.2",
    "react-scripts": "2.1.8"
  },

Любая помощь, предложение будет оценено,заранее спасибо !!.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...